Multi-level Bill Of Materials explosion

Andy Howcroft

New Member
Joined
Oct 3, 2023
Messages
21
Office Version
  1. 365
Platform
  1. Windows
Hi,

I have a single level Bill Of Materials (BOM) report that shows all parent assemblies with their subsequent child parts. I need to create a complete record of multi-level BOMs for all our products with the BOM level shown for each assembly/part.

Please note:
  • The child part can also be an assembly and therefore appears in the ‘Parent’ column.
  • The child parts/assemblies can be used in multiple assemblies.
  • The BOM level can be 20+.
  • We have 2,500 products and 10,000+ parts/assemblies and so the resulting report will be rather large.

Current report showing two Products and all subsequent assemblies and parts:
1696556172291.png



Required multi-level report with BOM levels shown for each assembly/part:
1696556200850.png


I am led to believe this could be achieved with either VBA or Power Pivot, but any other method will of course be appreciated.

Many thanks in advance.
 
I have sincere doubts that this will work at the scale you need; nor does it exactly match your output, but here's something I tried:
Book 28.xlsx
ABCDEFGHIJKLMNOPQRSTUVW
2ITEMCODESTEPSEQUENCESTEPNAMELINENUMBERCODETYPELINECODELINEDESCRIPTIONLINEUNITPERQTY
3CLM0022SBA-SM900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach12190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach4
4CLM0022SBA-SM190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each42900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach1
5CLM0022SBA-SM900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each13120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach1
6CLM0022SBA-SM190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach44910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1
7CLM0022SBA-SM900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach14910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes10
8CLM0022SBA-SM190PACK LIST90Labour CodePACKINGPackingMinutes203120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes10
9CLM0022SBA-SM190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each23120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each4
10CLM0022SBA-SM190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each23120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
11CLM0022SBA-SM200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes303120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach4
12CLM0022SBA-SM190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each43120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
13CLM0022SBA-SM900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach12200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes30
14CLM0337CB120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach42190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
15CLM0337CB120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach12190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each4
16CLM0337CB120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach42190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each2
17CLM0337CB120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each42190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each2
18CLM0337CB120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each42190PACK LIST90Labour CodePACKINGPackingMinutes20
19CLM0337CB120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes102900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each1
20CLM0337CM910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes103900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4
21CLM0337CM910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1420CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes1
22CST1001SB20EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1410PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each1
23CST1001SB20EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each14190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach1
24CST1001SB20EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1410PACK LIST60Labour CodePACKINGPackingMinutes0.5
25FST0001CB10PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each14190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
26FST0001CB190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach13190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each4
27FST0001CB190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.53900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4
28FST0001CB10PACK LIST60Labour CodePACKINGPackingMinutes0.53190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
29FST0001CB20CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes13190PACK LIST30Labour CodePACKINGPackingMinutes15
30FST0223-L25130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.033900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach2
31FST0223-L25130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5420POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1
32PNL0686SB100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each15100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
33PNL0686SB100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each15100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
34PNL0686SB100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each15100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each1
35PNL0686SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes155100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each1
36PNL0686SBC20POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
37PNL0686SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes43900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2
38PNL0687SB100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2420POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each1
39PNL0687SB100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each15100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1
40PNL0687SB100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1620EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
41PNL0687SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15620EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1
42PNL0687SB100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1620EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1
43PNL0687SBC20POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each15100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
44PNL0687SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes65100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2
45PNL1688SBA900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach25100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1
46PNL1688SBA190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each45100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each1
47PNL1688SBA900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes6
48PNL1688SBA190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each42900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach1
49PNL1688SBA190PACK LIST30Labour CodePACKINGPackingMinutes15370ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
50PNL1688SBA900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4370ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12
51PNL1688SBA900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2370ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4
52ROP0389CB70ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.44130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5
53ROP0389CB70ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each64130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
54ROP0389CB70ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4370ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
55ROP0389CB70ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6370ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4
56ROP0389CB70ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12370ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
57ROP0389CB70ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3370ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
58ROP0389CB70ROPE LIST150Labour CodeROPERope AssemblyMinutes115370ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4
59ROP0389CB70ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4370ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each6
60ROP0389CB70ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4370ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4
61ROP0389CB70ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4370ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6
62ROP0389CB70ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4370ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4
63ROP0389CB70ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4370ROPE LIST150Labour CodeROPERope AssemblyMinutes115
64ROP0389CB70ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each42900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach1
65SHT0738CBC180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach13910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$1
66SHT0738CBC180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes53180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes5
67SHT0738CBC910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$13180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach1
Sheet44
Cell Formulas
RangeFormula
K3:W67K3=LET( _a,A3:A67, _b,F3:F67, _c,UNIQUE(_a), _d,FILTER(_c,ISNA(XMATCH(_c,_b))), _e,IFERROR(DROP(REDUCE("",_b,LAMBDA(_x,_y,VSTACK(_x,LET(getParent, LAMBDA(ME,linecode,stack,LET(r,IFERROR(linecode-2,XMATCH(linecode,_b)), parent,INDEX(_a,r), list,HSTACK(parent,stack), IF(ISNUMBER(XMATCH(parent,_d)),list,ME(ME,parent,list)))),getParent(getParent,ROW(_y),_y))))),1),""), _f,BYROW(_e,LAMBDA(_z,SUM(IF(_z<>"",1,0)))), _g,MAKEARRAY(ROWS(_f),MAX(_f)-1,LAMBDA(ro,co,IF(INDEX(_f,ro)=co+1,INDEX(_f,ro),""))), _h,BYROW(_e,LAMBDA(_w,CONCAT(_w))), _i,SORTBY(HSTACK(_g,B3:I67),_h),_i)
Dynamic array formulas.
 
Upvote 0

Excel Facts

Control Word Wrap
Press Alt+Enter to move to a new row in a cell. Lets you control where the words wrap.
I have sincere doubts that this will work at the scale you need; nor does it exactly match your output, but here's something I tried:
Book 28.xlsx
ABCDEFGHIJKLMNOPQRSTUVW
2ITEMCODESTEPSEQUENCESTEPNAMELINENUMBERCODETYPELINECODELINEDESCRIPTIONLINEUNITPERQTY
3CLM0022SBA-SM900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach12190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach4
4CLM0022SBA-SM190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each42900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach1
5CLM0022SBA-SM900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each13120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach1
6CLM0022SBA-SM190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach44910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1
7CLM0022SBA-SM900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach14910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes10
8CLM0022SBA-SM190PACK LIST90Labour CodePACKINGPackingMinutes203120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes10
9CLM0022SBA-SM190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each23120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each4
10CLM0022SBA-SM190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each23120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
11CLM0022SBA-SM200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes303120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach4
12CLM0022SBA-SM190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each43120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
13CLM0022SBA-SM900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach12200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes30
14CLM0337CB120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach42190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
15CLM0337CB120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach12190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each4
16CLM0337CB120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach42190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each2
17CLM0337CB120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each42190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each2
18CLM0337CB120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each42190PACK LIST90Labour CodePACKINGPackingMinutes20
19CLM0337CB120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes102900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each1
20CLM0337CM910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes103900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4
21CLM0337CM910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1420CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes1
22CST1001SB20EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1410PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each1
23CST1001SB20EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each14190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach1
24CST1001SB20EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1410PACK LIST60Labour CodePACKINGPackingMinutes0.5
25FST0001CB10PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each14190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
26FST0001CB190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach13190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each4
27FST0001CB190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.53900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4
28FST0001CB10PACK LIST60Labour CodePACKINGPackingMinutes0.53190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
29FST0001CB20CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes13190PACK LIST30Labour CodePACKINGPackingMinutes15
30FST0223-L25130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.033900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach2
31FST0223-L25130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5420POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1
32PNL0686SB100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each15100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
33PNL0686SB100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each15100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
34PNL0686SB100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each15100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each1
35PNL0686SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes155100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each1
36PNL0686SBC20POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
37PNL0686SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes43900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2
38PNL0687SB100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2420POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each1
39PNL0687SB100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each15100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1
40PNL0687SB100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1620EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
41PNL0687SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15620EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1
42PNL0687SB100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1620EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1
43PNL0687SBC20POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each15100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
44PNL0687SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes65100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2
45PNL1688SBA900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach25100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1
46PNL1688SBA190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each45100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each1
47PNL1688SBA900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes6
48PNL1688SBA190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each42900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach1
49PNL1688SBA190PACK LIST30Labour CodePACKINGPackingMinutes15370ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
50PNL1688SBA900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4370ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12
51PNL1688SBA900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2370ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4
52ROP0389CB70ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.44130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5
53ROP0389CB70ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each64130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
54ROP0389CB70ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4370ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
55ROP0389CB70ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6370ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4
56ROP0389CB70ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12370ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
57ROP0389CB70ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3370ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
58ROP0389CB70ROPE LIST150Labour CodeROPERope AssemblyMinutes115370ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4
59ROP0389CB70ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4370ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each6
60ROP0389CB70ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4370ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4
61ROP0389CB70ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4370ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6
62ROP0389CB70ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4370ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4
63ROP0389CB70ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4370ROPE LIST150Labour CodeROPERope AssemblyMinutes115
64ROP0389CB70ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each42900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach1
65SHT0738CBC180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach13910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$1
66SHT0738CBC180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes53180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes5
67SHT0738CBC910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$13180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach1
Sheet44
Cell Formulas
RangeFormula
K3:W67K3=LET( _a,A3:A67, _b,F3:F67, _c,UNIQUE(_a), _d,FILTER(_c,ISNA(XMATCH(_c,_b))), _e,IFERROR(DROP(REDUCE("",_b,LAMBDA(_x,_y,VSTACK(_x,LET(getParent, LAMBDA(ME,linecode,stack,LET(r,IFERROR(linecode-2,XMATCH(linecode,_b)), parent,INDEX(_a,r), list,HSTACK(parent,stack), IF(ISNUMBER(XMATCH(parent,_d)),list,ME(ME,parent,list)))),getParent(getParent,ROW(_y),_y))))),1),""), _f,BYROW(_e,LAMBDA(_z,SUM(IF(_z<>"",1,0)))), _g,MAKEARRAY(ROWS(_f),MAX(_f)-1,LAMBDA(ro,co,IF(INDEX(_f,ro)=co+1,INDEX(_f,ro),""))), _h,BYROW(_e,LAMBDA(_w,CONCAT(_w))), _i,SORTBY(HSTACK(_g,B3:I67),_h),_i)
Dynamic array formulas.
Hi - Thanks heaps for looking at this one, your solution works excellently and I haven't found any incorrect BOM lines after much checking. However, as you suspected when applying to the 80,000+ lines it fails. I managed to get 17,000 multi-level BOM lines before it won't go any further. I can do a VLOOKUP to glean the item data from the code if required so effectively all I need is the LINECODE, the STEPNAME and the PERQTY. If you removed the other data fields I am presuming this would reduce the calculation requirements...? I have been trying to allow more CPU % for Excel (multi-thread, High priority) as despite my laptop having 32GB RAM Excel will not use more than 15-20% of CPU when processing. Not sure if this will help withe the issue, though...?

Also, the Parent item (BOM level "1") is missing from the report. Is there any way to include this as per the below as without it I can't identify what Parent the BOM lines are attributed to easily...? Of course the formatting isn't required.

Many thanks in advance 👍

BOMLINES_Anonymous1378.xlsm
YZAAABACADAEAF
2STEPNAMELINECODEPERQTY
31ACC0020LBA1
42AssemblyACC0020LBC1
53POWDERCOATACC0020LB1
64AssemblyPBN0107LM2
74AssemblyPBN0108LM5
84WELD LISTWELD70
93POWDERCOATPOWDERCOAT22
102PACK LISTCAP0023CM-BLACK2
112PACK LISTFST0004CM2
122PACK LISTFST0034CM2
132PACK LISTFST0132
142PACK LISTPACKING15
152PACK LISTPNL0192LBA2
161ACC0024LBA1
172AssemblyACC0024LB1
183WELD LISTPBN0106LM2
193WELD LISTPBN0108LM4
203POWDERCOATPOWDERCOAT5
213WELD LISTPROCESS WELD/POWDER1
223WELD LISTWELD135
232AssemblyCAP0023CM-BLACK2
242AssemblyFST0004CM2
252FASTENER LISTFST0034CM2
262FASTENER LISTFST0132
272AssemblyPACKING15
282AssemblyPNL0192LBA2
291ACC0025LBA1
302AssemblyACC0025LB1
313WELD LISTPBN0107LM2
323WELD LISTPBN0108LM7
333POWDERCOATPOWDERCOAT5
343WELD LISTPROCESS WELD/POWDER1
353WELD LISTWELD185
362AssemblyCAP0023CM-BLACK2
372AssemblyFST0004CM2
382FASTENER LISTFST0034CM2
392FASTENER LISTFST0132
402AssemblyPACKING15
412AssemblyPNL0192LBA2
421ACC0027LBA1
432AssemblyACC0026CBC1
443POWDERCOATACC0026CB1
454WELD LISTFST0094
464WELD LISTGLT0059CM2.3
474WELD LISTPROCESS WELD/POWDER1
484WELD LISTWELD45
493POWDERCOATPOWDERCOAT5
502AssemblyACC0027LB1
513AssemblyBDG0101CB1
523DISPATCH ASSYCAP0040CM1
533DISPATCH ASSYCAP0041CM2
543DISPATCH ASSYDISPATCH ASSY15
553DISPATCH ASSYFST0302
563DISPATCH ASSYFST0861
573PRE-FAB STOCK 2ROD0014CB2
583AssemblySHT0103CBC1
593AssemblySHT0104CBC1
602PACK LISTCAP0023CM-BLACK4
612PACK LISTFST0004CM8
622PACK LISTFST0034CM4
632PACK LISTFST0134
642PACK LISTPACKING15
652AssemblyPNL0192LBA2
BOMLINES_Anonymous1378
 
Upvote 0
Before I attempt to optimize it any further; can you test if variable _e works on your 80,000 rows? If it can't, then test if it works cell by cell without an array (without the IFERROR to VSTACK)? If it doesn't even work cell by cell then I'm not sure there's much hope of the formulaic approach working.
 
Upvote 0
Before I attempt to optimize it any further; can you test if variable _e works on your 80,000 rows? If it can't, then test if it works cell by cell without an array (without the IFERROR to VSTACK)? If it doesn't even work cell by cell then I'm not sure there's much hope of the formulaic approach working.
Unfortunately, I'm not an Excel expert and so don't understand how to perform your requests (your formula structure is very different to anything I have done before). If you can provide a formula(s) to utilise it would be appreciated. Otherwise I can provide a link to the original single level BOM data...
 
Upvote 0
Unfortunately, I'm not an Excel expert and so don't understand how to perform your requests (your formula structure is very different to anything I have done before). If you can provide a formula(s) to utilise it would be appreciated. Otherwise I can provide a link to the original single level BOM data...
To test if _e works for 80,000 rows as an array, you just need the formula up to that step:
Excel Formula:
=LET(
_a,A3:A67,
_b,F3:F67,
_c,UNIQUE(_a),
_d,FILTER(_c,ISNA(XMATCH(_c,_b))),
_e,IFERROR(DROP(REDUCE("",_b,LAMBDA(_x,_y,VSTACK(_x,LET(getParent,
LAMBDA(ME,linecode,stack,LET(r,IFERROR(linecode-2,XMATCH(linecode,_b)),
parent,INDEX(_a,r),
list,HSTACK(parent,stack),
IF(ISNUMBER(XMATCH(parent,_d)),list,ME(ME,parent,list)))),getParent(getParent,ROW(_y),_y))))),1),""),
_e)

To test if it works for 80,000 rows without an array (you need to copy it down for each row), try:
Excel Formula:
=LET(
_a,A$3:A$67,
_b,F$3:F$67,
_c,UNIQUE(_a),
_d,FILTER(_c,ISNA(XMATCH(_c,_b))),
_e,LET(getParent,
LAMBDA(ME,linecode,stack,LET(r,IFERROR(linecode-2,XMATCH(linecode,_b)),
parent,INDEX(_a,r),
list,HSTACK(parent,stack),
IF(ISNUMBER(XMATCH(parent,_d)),list,ME(ME,parent,list)))),getParent(getParent,ROW(F3),F3)),
_e)
 
Upvote 0
To test if _e works for 80,000 rows as an array, you just need the formula up to that step:
Excel Formula:
=LET(
_a,A3:A67,
_b,F3:F67,
_c,UNIQUE(_a),
_d,FILTER(_c,ISNA(XMATCH(_c,_b))),
_e,IFERROR(DROP(REDUCE("",_b,LAMBDA(_x,_y,VSTACK(_x,LET(getParent,
LAMBDA(ME,linecode,stack,LET(r,IFERROR(linecode-2,XMATCH(linecode,_b)),
parent,INDEX(_a,r),
list,HSTACK(parent,stack),
IF(ISNUMBER(XMATCH(parent,_d)),list,ME(ME,parent,list)))),getParent(getParent,ROW(_y),_y))))),1),""),
_e)

To test if it works for 80,000 rows without an array (you need to copy it down for each row), try:
Excel Formula:
=LET(
_a,A$3:A$67,
_b,F$3:F$67,
_c,UNIQUE(_a),
_d,FILTER(_c,ISNA(XMATCH(_c,_b))),
_e,LET(getParent,
LAMBDA(ME,linecode,stack,LET(r,IFERROR(linecode-2,XMATCH(linecode,_b)),
parent,INDEX(_a,r),
list,HSTACK(parent,stack),
IF(ISNUMBER(XMATCH(parent,_d)),list,ME(ME,parent,list)))),getParent(getParent,ROW(F3),F3)),
_e)
The second test worked but I don't believe it displays all the data as assemblies with subassemblies have extra lines added but the report stops at the end of the single level BOM, when there should be many more rows due to the extra levels added.
1697087762783.png
 
Upvote 0
@Andy Howcroft
It's an interesting case. I have questions:
1. Can an assembly belongs to multiple Product?
2. In post #12 you provided a result table, can you show us the original table?
 
Upvote 0
Here a recursive VBA approach. Paste this code in a new module. I used below dataset to test.
Paste the data in A1 first.

VBA Code:
Dim j As Long, aData, xp, aBom

Sub jec()
 Dim it As Variant
 j = 0
 aData = Sheets("Data").Cells(1).CurrentRegion
 Set dic = CreateObject("scripting.dictionary")
 For t = 2 To UBound(aData)
    dic(aData(t, 1)) = Empty
 Next
 ReDim aBom(1 To 50000, 1 To 9)
 For Each it In dic.keys
    xp = it
    GetBom it, 1
 Next
 Sheets("Data").Range("m1").Resize(, 9) = Array("Lvl", "Item", "Seq", "Stepname", "LineNr", "CodeType", "Description", "Unit", "Qty")
 Sheets("Data").Range("m2").Resize(UBound(aBom), 9) = aBom
End Sub

Private Sub GetBom(sPart As Variant, iLvl As Integer)
 Dim i As Long, c As Long
 For i = 2 To UBound(aData)
    If aData(i, 1) = sPart Then
      j = j + 1
      If aData(i, 1) = xp Then
        aBom(j, 1) = iLvl
        aBom(j, 2) = xp
        aBom(j + 1, 1) = iLvl + 1
        aBom(j + 1, 2) = Space(iLvl * 10) & aData(i, 6)
        j = j + 1
        xp = ""
      Else
        aBom(j, 2) = Space(iLvl * 10) & aData(i, 6)
        aBom(j, 1) = iLvl + 1
      End If
      For c = 2 To 8
        aBom(j, c + 1) = aData(i, IIf(c > 5, c + 1, c))
      Next
        GetBom aData(i, 6), iLvl + 1
    End If
 Next
End Sub



ITEMCODESTEPSEQUENCESTEPNAMELINENUMBERCODETYPELINECODELINEDESCRIPTIONLINEUNITPERQTY
CLM0022SBA-SM
900​
Assembly
85​
Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach
1​
CLM0022SBA-SM
190​
PACK LIST
20​
Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each
4​
CLM0022SBA-SM
900​
Assembly
40​
Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each
1​
CLM0022SBA-SM
190​
PACK LIST
10​
Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach
4​
CLM0022SBA-SM
900​
Assembly
90​
Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach
1​
CLM0022SBA-SM
190​
PACK LIST
90​
Labour CodePACKINGPackingMinutes
20​
CLM0022SBA-SM
190​
PACK LIST
50​
Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each
2​
CLM0022SBA-SM
190​
PACK LIST
30​
Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each
2​
CLM0022SBA-SM
200​
DISPATCH ASSY
90​
Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes
30​
CLM0022SBA-SM
190​
PACK LIST
25​
Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each
4​
CLM0022SBA-SM
900​
Assembly
80​
Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach
1​
CLM0337CB
120​
DISPATCH ASSY
40​
Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach
4​
CLM0337CB
120​
DISPATCH ASSY
10​
Item CodeCLM0337CM255mm Pitch Footing ChannelEach
1​
CLM0337CB
120​
DISPATCH ASSY
20​
Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach
4​
CLM0337CB
120​
DISPATCH ASSY
30​
Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each
4​
CLM0337CB
120​
DISPATCH ASSY
50​
Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each
4​
CLM0337CB
120​
DISPATCH ASSY
60​
Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes
10​
CLM0337CM
910​
FABRICATION
20​
Labour CodeFABRICATION ASSYAssembly FabricationMinutes
10​
CLM0337CM
910​
FABRICATION
50​
Item CodeCLM0331CMUniversal Footing Channel Type 1Each
1​
CST1001SB
20​
EXT MACHINE
30​
Labour CodeHANDLINGHandlingMinutes
1​
CST1001SB
20​
EXT MACHINE
40​
Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each
1​
CST1001SB
20​
EXT MACHINE
50​
Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each
1​
FST0001CB
10​
PACK LIST
10​
Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each
1​
FST0001CB
190​
DISPATCH ASSY
20​
Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach
1​
FST0001CB
190​
DISPATCH ASSY
30​
Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
FST0001CB
10​
PACK LIST
60​
Labour CodePACKINGPackingMinutes0.5
FST0001CB
20​
CUT LIST
70​
Labour CodeCUT AND DRILLCut and Drill MetalMinutes
1​
FST0223-L25
130​
FABRICATION
10​
Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
FST0223-L25
130​
FABRICATION
20​
Labour CodeFABRICATION ASSYAssembly FabricationMinutes
5​
PNL0686SB
100​
FABRICATION
10​
Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each
1​
PNL0686SB
100​
FABRICATION
20​
Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each
1​
PNL0686SB
100​
FABRICATION
30​
Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each
1​
PNL0686SB
100​
FABRICATION
50​
Labour CodeFABRICATION ASSYFabricated AssemblyMinutes
15​
PNL0686SBC
20​
POWDERCOAT
10​
Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each
1​
PNL0686SBC
20​
POWDERCOAT
20​
Labour CodePOWDERCOATPowder Coating OperationMinutes
4​
PNL0687SB
100​
FABRICATION
60​
Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each
2​
PNL0687SB
100​
FABRICATION
10​
Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each
1​
PNL0687SB
100​
FABRICATION
30​
Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach
1​
PNL0687SB
100​
FABRICATION
50​
Labour CodeFABRICATION ASSYFabricated AssemblyMinutes
15​
PNL0687SB
100​
FABRICATION
70​
Item CodeFST165M8 X 16 RTOX (1000 QTY)Each
1​
PNL0687SBC
20​
POWDERCOAT
10​
Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each
1​
PNL0687SBC
20​
POWDERCOAT
20​
Labour CodePOWDERCOATPowder Coating OperationMinutes
6​
PNL1688SBA
900​
Assembly
10​
Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach
2​
PNL1688SBA
190​
PACK LIST
20​
Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each
4​
PNL1688SBA
900​
Assembly
50​
Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach
4​
PNL1688SBA
190​
PACK LIST
60​
Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each
4​
PNL1688SBA
190​
PACK LIST
30​
Labour CodePACKINGPackingMinutes
15​
PNL1688SBA
900​
Assembly
70​
Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each
4​
PNL1688SBA
900​
Assembly
80​
Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach
2​
ROP0389CB
70​
ROPE LIST
140​
Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
ROP0389CB
70​
ROPE LIST
10​
Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each
6​
ROP0389CB
70​
ROPE LIST
20​
Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each
4​
ROP0389CB
70​
ROPE LIST
30​
Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each
6​
ROP0389CB
70​
ROPE LIST
50​
Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach
12​
ROP0389CB
70​
ROPE LIST
60​
Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
ROP0389CB
70​
ROPE LIST
150​
Labour CodeROPERope AssemblyMinutes
115​
ROP0389CB
70​
ROPE LIST
80​
Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach
4​
ROP0389CB
70​
ROPE LIST
90​
Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each
4​
ROP0389CB
70​
ROPE LIST
100​
Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each
4​
ROP0389CB
70​
ROPE LIST
110​
Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach
4​
ROP0389CB
70​
ROPE LIST
120​
Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach
4​
ROP0389CB
70​
ROPE LIST
130​
Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each
4​
SHT0738CBC
180​
POWDERCOAT
20​
Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach
1​
SHT0738CBC
180​
POWDERCOAT
20​
Labour CodePOWDERCOATPowder Coating OperationMinutes
5​
SHT0738CBC
910​
EXT PREP
30​
Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$
1​
 
Upvote 0
The second test worked but I don't believe it displays all the data as assemblies with subassemblies have extra lines added but the report stops at the end of the single level BOM, when there should be many more rows due to the extra levels added.
View attachment 100191
I am of the opinion you should favor a VBA approach since it will probably have less overhead than this one; but to answer your question: _d is used to determine BOM level 1 by checking for items which appear in the parent column but never in the child column. Are you sure Z-Welding appears in the child column without any superfluous or missing characters? If it does, then I might be out of ideas... (or perhaps the resources consumed by excel is making it malfunction...)
 
Upvote 0
@Andy Howcroft
It's an interesting case. I have questions:
1. Can an assembly belongs to multiple Product?
2. In post #12 you provided a result table, can you show us the original table?
Yes it is and one that doesn't seem to have an easy answer! 🙂
In answer to your queries:
1. Yes assemblies can belong to multiple products (and subassemblies within the high level Products).
2. Please see below for the original single level BOM report. Please note that the sample results only showed results for 4 assemblies, we have 16000+, so the full report is rather large!
BOMLINES_JEC.xlsm
ABCDE
1ITEMCODESTEPNAMELINECODELINEUNITPERQTY
2ACC0020LBAssemblyPBN0107LMEach2
3ACC0020LBAssemblyPBN0108LMEach5
4ACC0020LBWELD LISTWELDMinutes70
5ACC0020LBAAssemblyACC0020LBCEach1
6ACC0020LBAPACK LISTCAP0023CM-BLACKEach2
7ACC0020LBAPACK LISTFST0004CMEach2
8ACC0020LBAPACK LISTFST013Each2
9ACC0020LBAPACK LISTFST0034CMEach2
10ACC0020LBAPACK LISTPACKINGMinutes15
11ACC0020LBAPACK LISTPNL0192LBAEach2
12ACC0020LBCPOWDERCOATACC0020LBEach1
13ACC0020LBCPOWDERCOATPOWDERCOATMinutes22
14ACC0024LBPOWDERCOATPOWDERCOATMinutes5
15ACC0024LBWELD LISTPROCESS WELD/POWDEREach1
16ACC0024LBWELD LISTPBN0106LMEach2
17ACC0024LBWELD LISTPBN0108LMEach4
18ACC0024LBWELD LISTWELDMinutes135
19ACC0024LBAFASTENER LISTFST0034CMEach2
20ACC0024LBAFASTENER LISTFST013Each2
21ACC0024LBAAssemblyFST0004CMEach2
22ACC0024LBAAssemblyACC0024LBEach1
23ACC0024LBAAssemblyCAP0023CM-BLACKEach2
24ACC0024LBAAssemblyPNL0192LBAEach2
25ACC0024LBAAssemblyPACKINGMinutes15
26ACC0025LBPOWDERCOATPOWDERCOATMinutes5
27ACC0025LBWELD LISTPROCESS WELD/POWDEREach1
28ACC0025LBWELD LISTPBN0107LMEach2
29ACC0025LBWELD LISTPBN0108LMEach7
30ACC0025LBWELD LISTWELDMinutes185
31ACC0025LBAFASTENER LISTFST0034CMEach2
32ACC0025LBAFASTENER LISTFST013Each2
33ACC0025LBAAssemblyFST0004CMEach2
34ACC0025LBAAssemblyACC0025LBEach1
35ACC0025LBAAssemblyCAP0023CM-BLACKEach2
36ACC0025LBAAssemblyPNL0192LBAEach2
37ACC0025LBAAssemblyPACKINGMinutes15
38ACC0026CBWELD LISTPROCESS WELD/POWDEREach1
39ACC0026CBWELD LISTFST009Each4
40ACC0026CBWELD LISTGLT0059CMM2.3
41ACC0026CBWELD LISTWELDMinutes45
42ACC0026CBCPOWDERCOATPOWDERCOATMinutes5
43ACC0026CBCPOWDERCOATACC0026CBEach1
44ACC0027LBDISPATCH ASSYFST030Each2
45ACC0027LBAssemblySHT0104CBCEach1
46ACC0027LBAssemblySHT0103CBCEach1
47ACC0027LBAssemblyBDG0101CBEach1
48ACC0027LBDISPATCH ASSYFST086Each1
49ACC0027LBDISPATCH ASSYCAP0040CMEach1
50ACC0027LBDISPATCH ASSYCAP0041CMEach2
51ACC0027LBPRE-FAB STOCK 2ROD0014CBEach2
52ACC0027LBDISPATCH ASSYDISPATCH ASSYMinutes15
53ACC0027LBAPACK LISTFST0034CMEach4
54ACC0027LBAPACK LISTFST013Each4
55ACC0027LBAPACK LISTFST0004CMEach8
56ACC0027LBAAssemblyACC0026CBCEach1
57ACC0027LBAAssemblyACC0027LBEach1
58ACC0027LBAPACK LISTCAP0023CM-BLACKEach4
59ACC0027LBAAssemblyPNL0192LBAEach2
60ACC0027LBAPACK LISTPACKINGMinutes15
XL2BB - Akuini
 
Upvote 0

Forum statistics

Threads
1,223,229
Messages
6,170,881
Members
452,364
Latest member
springate

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top