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.
 

Excel Facts

What did Pito Salas invent?
Pito Salas, working for Lotus, popularized what would become to be pivot tables. It was released as Lotus Improv in 1989.
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:
View attachment 99811


Required multi-level report with BOM levels shown for each assembly/part:
View attachment 99812


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.
Are you able to send us some real data using XL2BB?

Do you have any other columns in your data?

MrExcel has a tool called “XL2BB” that lets you post samples of your data that will allow us to copy/paste it to our Excel spreadsheets, so we can work with the same copy of data that you are. Instructions on using this tool can be found here: XL2BB Add-in

Note that there is also a "Test Here” forum on this board. This is a place where you can test using this tool (or any other posting techniques that you want to test) before trying to use those tools in your actual posts.
 
Upvote 0
This is very embryonic, but I thought I'd throw it out there as a starting point. I would very much like to see your actual data via the XL2BB add in, or perhaps you could share your file via Google Drive, dropbox or similar file sharing platform to test the below with a more realistic data set. Obviously a lot of tidying up to do, this is just a start.
VBA Code:
Option Explicit
Sub Parent_Child()
    Application.ScreenUpdating = False
    Dim ws1 As Worksheet, ws2 As Worksheet
    Set ws1 = Worksheets("Sheet1")       '<-- *** Change to actual sheet names ***
    
    Dim a, b, z
    Dim i As Long, j As Long, k As Long, n As Long
    Dim c As Range, x As String, y As String
    Dim LRow As Long
    LRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row
    
    ws1.Range("J:Z").Clear
    ws1.Range("K2").Formula2R1C1 = _
    "=UNIQUE(FILTER(R2C1:R" & LRow & "C1,COUNTIF(R2C2:R" & LRow & "C2,R2C1:R" & LRow & "C1)<1))"
    With ws1.Range("K2#")
        .Value = .Value
        .Offset(, -1) = 1
        .Offset(, 1) = 1
    End With
    
    n = 1
    a = ws1.Range("A2", ws1.Cells(Rows.Count, "C").End(xlUp))
    For Each c In ws1.Range("K2:K" & LRow)
        x = c
        For i = 1 To UBound(a, 1)
            If a(i, 1) = x Then
                With c
                    .Offset(n, -4).Resize(, 6).Insert xlShiftDown
                    .Offset(n).Value = a(i, 2)
                    .Offset(n, 1).Value = a(i, 3)
                End With
                n = n + 1
            End If
        Next i
        n = 1
    Next c
    
    Dim child
    child = ws1.Range("J2", ws1.Cells(Rows.Count, "K").End(xlUp))
    
    For i = 1 To UBound(a, 1)
        x = a(i, 2)
        y = a(i, 1)
        For j = 1 To UBound(child, 1)
            If child(j, 2) = y Then
                n = child(j, 1)
                Exit For
            End If
        Next j
        For k = 1 To UBound(child, 1)
            If child(k, 2) = x And IsEmpty(child(k, 1)) Then
                child(k, 1) = n + 1
                Exit For
            End If
        Next k
    Next i
    
    For i = UBound(child, 1) To 1 Step -1
        If IsEmpty(child(i, 1)) Then
            x = child(i, 2)
            For j = UBound(a, 1) To 1 Step -1
                If a(j, 2) = x Then
                    y = a(j, 1)
                    For k = UBound(child, 1) To 1 Step -1
                        If child(k, 2) = y Then
                            n = child(k, 1)
                            child(i, 1) = n + 1
                            Exit For
                        End If
                    Next k
                End If
            Next j
        End If
    Next i
    
    ws1.Range("J2").Resize(UBound(child, 1), 2).Value = child
    n = Application.Max(ws1.Range("J:J")) - 1
    ws1.Range("K1").Resize(1, 2).Value = Array("ITEM CODE", "QTY")
    ws1.Range("K1").EntireColumn.Resize(, n).Insert
    
    z = ws1.Range("J2").Resize(UBound(child, 1), n + 1)
    For i = 1 To UBound(z, 1)
        n = z(i, 1)
        z(i, 1) = ""
        z(i, n) = n
    Next i
    
    ws1.Range("J2").Resize(UBound(z, 1), UBound(z, 2)).Value = z
    ws1.Range("J1").Resize(, 25).EntireColumn.AutoFit
    Application.ScreenUpdating = True
End Sub

Before:
Parent Child.xlsm
ABCDEFGHIJKL
1ParentChildQty
2Product 1Assembly 12
3Product 1Assembly 31
4Assembly 1Part 14
5Assembly 1Part 21
6Assembly 1Assembly 26
7Assembly 2Part 41
8Assembly 2Part 53
9Assembly 3Part 61
10Assembly 3Part 71
11Assembly 3Part 81
12Assembly 3Part 92
13Product 2Assembly 21
14Product 2Assembly 45
15Product 2Part 102
16Assembly 4Part 44
17Assembly 4Part 81
18
Sheet1


After:
Parent Child.xlsm
ABCDEFGHIJKLMNOP
1ParentChildQtyITEM CODEQTY
2Product 1Assembly 121Product 11
3Product 1Assembly 312Assembly 12
4Assembly 1Part 143Part 14
5Assembly 1Part 213Part 21
6Assembly 1Assembly 263Assembly 26
7Assembly 2Part 414Part 41
8Assembly 2Part 534Part 53
9Assembly 3Part 612Assembly 31
10Assembly 3Part 713Part 61
11Assembly 3Part 813Part 71
12Assembly 3Part 923Part 81
13Product 2Assembly 213Part 92
14Product 2Assembly 451Product 21
15Product 2Part 1022Assembly 21
16Assembly 4Part 443Part 41
17Assembly 4Part 813Part 53
182Assembly 45
193Part 44
203Part 81
212Part 102
22
Sheet1
 
Upvote 0
This is very embryonic, but I thought I'd throw it out there as a starting point. I would very much like to see your actual data via the XL2BB add in, or perhaps you could share your file via Google Drive, dropbox or similar file sharing platform to test the below with a more realistic data set. Obviously a lot of tidying up to do, this is just a start.
VBA Code:
Option Explicit
Sub Parent_Child()
    Application.ScreenUpdating = False
    Dim ws1 As Worksheet, ws2 As Worksheet
    Set ws1 = Worksheets("Sheet1")       '<-- *** Change to actual sheet names ***
   
    Dim a, b, z
    Dim i As Long, j As Long, k As Long, n As Long
    Dim c As Range, x As String, y As String
    Dim LRow As Long
    LRow = ws1.Cells(Rows.Count, 1).End(xlUp).Row
   
    ws1.Range("J:Z").Clear
    ws1.Range("K2").Formula2R1C1 = _
    "=UNIQUE(FILTER(R2C1:R" & LRow & "C1,COUNTIF(R2C2:R" & LRow & "C2,R2C1:R" & LRow & "C1)<1))"
    With ws1.Range("K2#")
        .Value = .Value
        .Offset(, -1) = 1
        .Offset(, 1) = 1
    End With
   
    n = 1
    a = ws1.Range("A2", ws1.Cells(Rows.Count, "C").End(xlUp))
    For Each c In ws1.Range("K2:K" & LRow)
        x = c
        For i = 1 To UBound(a, 1)
            If a(i, 1) = x Then
                With c
                    .Offset(n, -4).Resize(, 6).Insert xlShiftDown
                    .Offset(n).Value = a(i, 2)
                    .Offset(n, 1).Value = a(i, 3)
                End With
                n = n + 1
            End If
        Next i
        n = 1
    Next c
   
    Dim child
    child = ws1.Range("J2", ws1.Cells(Rows.Count, "K").End(xlUp))
   
    For i = 1 To UBound(a, 1)
        x = a(i, 2)
        y = a(i, 1)
        For j = 1 To UBound(child, 1)
            If child(j, 2) = y Then
                n = child(j, 1)
                Exit For
            End If
        Next j
        For k = 1 To UBound(child, 1)
            If child(k, 2) = x And IsEmpty(child(k, 1)) Then
                child(k, 1) = n + 1
                Exit For
            End If
        Next k
    Next i
   
    For i = UBound(child, 1) To 1 Step -1
        If IsEmpty(child(i, 1)) Then
            x = child(i, 2)
            For j = UBound(a, 1) To 1 Step -1
                If a(j, 2) = x Then
                    y = a(j, 1)
                    For k = UBound(child, 1) To 1 Step -1
                        If child(k, 2) = y Then
                            n = child(k, 1)
                            child(i, 1) = n + 1
                            Exit For
                        End If
                    Next k
                End If
            Next j
        End If
    Next i
   
    ws1.Range("J2").Resize(UBound(child, 1), 2).Value = child
    n = Application.Max(ws1.Range("J:J")) - 1
    ws1.Range("K1").Resize(1, 2).Value = Array("ITEM CODE", "QTY")
    ws1.Range("K1").EntireColumn.Resize(, n).Insert
   
    z = ws1.Range("J2").Resize(UBound(child, 1), n + 1)
    For i = 1 To UBound(z, 1)
        n = z(i, 1)
        z(i, 1) = ""
        z(i, n) = n
    Next i
   
    ws1.Range("J2").Resize(UBound(z, 1), UBound(z, 2)).Value = z
    ws1.Range("J1").Resize(, 25).EntireColumn.AutoFit
    Application.ScreenUpdating = True
End Sub

Before:
Parent Child.xlsm
ABCDEFGHIJKL
1ParentChildQty
2Product 1Assembly 12
3Product 1Assembly 31
4Assembly 1Part 14
5Assembly 1Part 21
6Assembly 1Assembly 26
7Assembly 2Part 41
8Assembly 2Part 53
9Assembly 3Part 61
10Assembly 3Part 71
11Assembly 3Part 81
12Assembly 3Part 92
13Product 2Assembly 21
14Product 2Assembly 45
15Product 2Part 102
16Assembly 4Part 44
17Assembly 4Part 81
18
Sheet1


After:
Parent Child.xlsm
ABCDEFGHIJKLMNOP
1ParentChildQtyITEM CODEQTY
2Product 1Assembly 121Product 11
3Product 1Assembly 312Assembly 12
4Assembly 1Part 143Part 14
5Assembly 1Part 213Part 21
6Assembly 1Assembly 263Assembly 26
7Assembly 2Part 414Part 41
8Assembly 2Part 534Part 53
9Assembly 3Part 612Assembly 31
10Assembly 3Part 713Part 61
11Assembly 3Part 813Part 71
12Assembly 3Part 923Part 81
13Product 2Assembly 213Part 92
14Product 2Assembly 451Product 21
15Product 2Part 1022Assembly 21
16Assembly 4Part 443Part 41
17Assembly 4Part 813Part 53
182Assembly 45
193Part 44
203Part 81
212Part 102
22
Sheet1

Hi kevin9999,

This is an amazing start, thank you so much!! The code works perfectly on the small set of sample data and the fact that the BOM level increases whenever required is fantastic - very clever!

Unfortunately, the code doesn't work perfectly on larger examples, which I assume you expected as you mentioned "very embryonic" in your reply . I have applied the macro to one of our medium sized BOMs and more than half of the lines were correct, great start 🙌. You can find the file via the link below. I have shown the actual report data for one of our products (tab "CLM0022SBA-SM SINGLE LEVEL"), and all the subsequent subassemblies and parts that are required for the BOM. I have then manually created the multi-level/exploded BOM (tab "CLM0022SBA-SM EXPLODED") using the original data.


After running the macro against the original data I have shown the results to the right of the manually exploded BOM (column R onwards) and compared the two. All lines with the correct BOM level have the BOM level highlighted green, incorrect lines in red and the correct level in yellow. This is a fantastic first test that I'm hoping you will be able to improve on given the extra info. Also, as you can see there is more line data, specific to the items - if we could pull these across as well that would be amazing. There isn't any info on the level 1 item (i.e. CLM0022SBA-SM), but just to bring across the code and a quantity of "1" will suffice.

Let me know if you have any issues with the link or require any further info/data.

Thanks heaps in advance! 🙂
 
Upvote 0
Are you able to send us some real data using XL2BB?

Do you have any other columns in your data?

MrExcel has a tool called “XL2BB” that lets you post samples of your data that will allow us to copy/paste it to our Excel spreadsheets, so we can work with the same copy of data that you are. Instructions on using this tool can be found here: XL2BB Add-in

Note that there is also a "Test Here” forum on this board. This is a place where you can test using this tool (or any other posting techniques that you want to test) before trying to use those tools in your actual posts.
Hi Herakles,

Thanks for your reply. I have replied to kevin9999's post with further information and a link to more data 🙂.
 
Upvote 0
Hi Andy,
I knew that the method I applied in post #3 would prove to be impractical on large data sets. I was hoping to convert the principle (at least) to an in-memory approach via arrays/collections/dictionaries etc. but unfortunately I've hit a brick wall getting the flow of logic right. I'm not certain I will ever be able to get a workable solution for you, and sincerely hope that those on the forum more advanced than me will come to the rescue. In the meantime, I'd still like to look at the actual data - but you need to make shared file available to anyone with the link (the link you provided is 'restricted'.
Good luck!
 
Upvote 0
Hi Herakles,

Thanks for your reply. I have replied to kevin9999's post with further information and a link to more data 🙂.
I've been looking into this and have started to developed a recursive approach to report on the multiple levels.

Questions.

1. Do you want the assemblies to be on the report in the order in whcih they appear in the BOM or the order in which they are used? Your example report shows the latter.

2.. Will an assembly always have the same parts in it with the same quantities? If this is the case then a table of assemblies and parts can be put together
and then referred to when necessary instead of gleaning this repeatedly from the BOM.

3. Can you please use XL2BB to provide some real codes? I don't know if there us anything in the code which identifies it as a product, assembly or a part.

4. I have assumed that a Child is a Part if it is not a Parent. Is this a correct asumption?

5. I have assumed that a Child is an Assembly is if it is a Parent. Is this a correct asumption?

6. I have assumed that a Product is a Parent if it is not a Child. Is this a correct asumption?
 
Upvote 0
I've been looking into this and have started to developed a recursive approach to report on the multiple levels.

Questions.

1. Do you want the assemblies to be on the report in the order in whcih they appear in the BOM or the order in which they are used? Your example report shows the latter.

2.. Will an assembly always have the same parts in it with the same quantities? If this is the case then a table of assemblies and parts can be put together
and then referred to when necessary instead of gleaning this repeatedly from the BOM.

3. Can you please use XL2BB to provide some real codes? I don't know if there us anything in the code which identifies it as a product, assembly or a part.

4. I have assumed that a Child is a Part if it is not a Parent. Is this a correct asumption?

5. I have assumed that a Child is an Assembly is if it is a Parent. Is this a correct asumption?

6. I have assumed that a Product is a Parent if it is not a Child. Is this a correct asumption?
Hi Herakles,

Many thanks for looking into this one, any help is greatly appreciated. In response to your queries:

1. Please see my multi-level BOM example in XL2BB format at the foot of this message - this should answer this one.

2. Yes, an assembly will always have the same parts with the same quantities. We have a report from our ERP system that shows all BOMs in the system and their subsequent children. See the example below for which I have manually included all the required subassemblies and child parts for our product "CLM0022SBA-SM".

3. Please see the below XL2BB examples:



Below is the original single level BOM report for one of our medium sized BOMs that we can export from our current system. The Parent, Child and Qty columns are headed in blue.
MrExcel VBA Test.xlsm
ABCDEFGHI
1PARENTCHILDQTY
2ITEMCODESTEPSEQUENCESTEPNAMELINENUMBERCODETYPELINECODELINEDESCRIPTIONLINEUNITPERQTY
3CLM0022SBA-SM900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach1
4CLM0022SBA-SM190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each4
5CLM0022SBA-SM900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each1
6CLM0022SBA-SM190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach4
7CLM0022SBA-SM900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach1
8CLM0022SBA-SM190PACK LIST90Labour CodePACKINGPackingMinutes20
9CLM0022SBA-SM190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each2
10CLM0022SBA-SM190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each2
11CLM0022SBA-SM200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes30
12CLM0022SBA-SM190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
13CLM0022SBA-SM900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach1
14CLM0337CB120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach4
15CLM0337CB120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach1
16CLM0337CB120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
17CLM0337CB120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
18CLM0337CB120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each4
19CLM0337CB120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes10
20CLM0337CM910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes10
21CLM0337CM910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1
22CST1001SB20EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1
23CST1001SB20EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
24CST1001SB20EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1
25FST0001CB10PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each1
26FST0001CB190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach1
27FST0001CB190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
28FST0001CB10PACK LIST60Labour CodePACKINGPackingMinutes0.5
29FST0001CB20CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes1
30FST0223-L25130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
31FST0223-L25130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5
32PNL0686SB100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each1
33PNL0686SB100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each1
34PNL0686SB100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
35PNL0686SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
36PNL0686SBC20POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1
37PNL0686SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
38PNL0687SB100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2
39PNL0687SB100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each1
40PNL0687SB100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1
41PNL0687SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
42PNL0687SB100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1
43PNL0687SBC20POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each1
44PNL0687SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes6
45PNL1688SBA900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach2
46PNL1688SBA190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
47PNL1688SBA900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4
48PNL1688SBA190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each4
49PNL1688SBA190PACK LIST30Labour CodePACKINGPackingMinutes15
50PNL1688SBA900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4
51PNL1688SBA900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2
52ROP0389CB70ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
53ROP0389CB70ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each6
54ROP0389CB70ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4
55ROP0389CB70ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6
56ROP0389CB70ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12
57ROP0389CB70ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
58ROP0389CB70ROPE LIST150Labour CodeROPERope AssemblyMinutes115
59ROP0389CB70ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4
60ROP0389CB70ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4
61ROP0389CB70ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4
62ROP0389CB70ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4
63ROP0389CB70ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
64ROP0389CB70ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
65SHT0738CBC180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach1
66SHT0738CBC180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes5
67SHT0738CBC910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$1
CLM0022SBA-SM SINGLE LEVEL


Here is the multi-level/exploded BOM that I have manually created showing all BOM levels. The fields discussed so far are highlighted blue. Obviously there is more line data that would be useful but one thing at a time!
MrExcel VBA Test.xlsm
BCDEFGHIJKLMNO
1BOM LEVELSTEPSEQUENCESTEPNAMELINENUMBERCODETYPEITEM CODELINEDESCRIPTIONLINEUNITQTY
21CLM0022SBA-SMPS Cable Rope Net Climber 1200 - Surface MountEach1
32900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach1
43120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach4
53120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach1
64910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes10
74910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1
83120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
93120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
103120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each4
113120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes10
122190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each4
132900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each1
143900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach2
15420POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1
165100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each1
175100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each1
185100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
195100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
20420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
213190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
223900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4
23410PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each1
244190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach1
254190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
26410PACK LIST60Labour CodePACKINGPackingMinutes0.5
27420CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes1
283190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each4
293190PACK LIST30Labour CodePACKINGPackingMinutes15
303900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4
313900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2
32420POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each1
335100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2
345100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each1
355100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1
36620EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1
37620EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
38620EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1
395100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
405100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1
41420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
422190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach4
432900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach1
443180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach1
453180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes5
463910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$1
472190PACK LIST90Labour CodePACKINGPackingMinutes20
482190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each2
492190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each2
502200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes30
512190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
522900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach1
53370ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
54370ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each6
55370ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4
56370ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6
57370ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12
58370ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
59370ROPE LIST150Labour CodeROPERope AssemblyMinutes115
60370ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4
61370ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4
62370ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4
63370ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4
644130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
654130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5
66370ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
67370ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
CLM0022SBA-SM EXPLODED
 
Upvote 0
Hi Herakles,

Many thanks for looking into this one, any help is greatly appreciated. In response to your queries:

1. Please see my multi-level BOM example in XL2BB format at the foot of this message - this should answer this one.

2. Yes, an assembly will always have the same parts with the same quantities. We have a report from our ERP system that shows all BOMs in the system and their subsequent children. See the example below for which I have manually included all the required subassemblies and child parts for our product "CLM0022SBA-SM".

3. Please see the below XL2BB examples:



Below is the original single level BOM report for one of our medium sized BOMs that we can export from our current system. The Parent, Child and Qty columns are headed in blue.
MrExcel VBA Test.xlsm
ABCDEFGHI
1PARENTCHILDQTY
2ITEMCODESTEPSEQUENCESTEPNAMELINENUMBERCODETYPELINECODELINEDESCRIPTIONLINEUNITPERQTY
3CLM0022SBA-SM900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach1
4CLM0022SBA-SM190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each4
5CLM0022SBA-SM900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each1
6CLM0022SBA-SM190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach4
7CLM0022SBA-SM900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach1
8CLM0022SBA-SM190PACK LIST90Labour CodePACKINGPackingMinutes20
9CLM0022SBA-SM190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each2
10CLM0022SBA-SM190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each2
11CLM0022SBA-SM200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes30
12CLM0022SBA-SM190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
13CLM0022SBA-SM900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach1
14CLM0337CB120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach4
15CLM0337CB120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach1
16CLM0337CB120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
17CLM0337CB120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
18CLM0337CB120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each4
19CLM0337CB120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes10
20CLM0337CM910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes10
21CLM0337CM910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1
22CST1001SB20EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1
23CST1001SB20EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
24CST1001SB20EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1
25FST0001CB10PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each1
26FST0001CB190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach1
27FST0001CB190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
28FST0001CB10PACK LIST60Labour CodePACKINGPackingMinutes0.5
29FST0001CB20CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes1
30FST0223-L25130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
31FST0223-L25130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5
32PNL0686SB100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each1
33PNL0686SB100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each1
34PNL0686SB100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
35PNL0686SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
36PNL0686SBC20POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1
37PNL0686SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
38PNL0687SB100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2
39PNL0687SB100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each1
40PNL0687SB100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1
41PNL0687SB100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
42PNL0687SB100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1
43PNL0687SBC20POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each1
44PNL0687SBC20POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes6
45PNL1688SBA900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach2
46PNL1688SBA190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
47PNL1688SBA900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4
48PNL1688SBA190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each4
49PNL1688SBA190PACK LIST30Labour CodePACKINGPackingMinutes15
50PNL1688SBA900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4
51PNL1688SBA900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2
52ROP0389CB70ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
53ROP0389CB70ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each6
54ROP0389CB70ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4
55ROP0389CB70ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6
56ROP0389CB70ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12
57ROP0389CB70ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
58ROP0389CB70ROPE LIST150Labour CodeROPERope AssemblyMinutes115
59ROP0389CB70ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4
60ROP0389CB70ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4
61ROP0389CB70ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4
62ROP0389CB70ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4
63ROP0389CB70ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
64ROP0389CB70ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
65SHT0738CBC180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach1
66SHT0738CBC180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes5
67SHT0738CBC910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$1
CLM0022SBA-SM SINGLE LEVEL


Here is the multi-level/exploded BOM that I have manually created showing all BOM levels. The fields discussed so far are highlighted blue. Obviously there is more line data that would be useful but one thing at a time!
MrExcel VBA Test.xlsm
BCDEFGHIJKLMNO
1BOM LEVELSTEPSEQUENCESTEPNAMELINENUMBERCODETYPEITEM CODELINEDESCRIPTIONLINEUNITQTY
21CLM0022SBA-SMPS Cable Rope Net Climber 1200 - Surface MountEach1
32900Assembly85Item CodeCLM0337CB255mm Pitch Footing Channel AssemblyEach1
43120DISPATCH ASSY40Item CodeFST2001M10 Large Washer S/S 304 - Ø30ODEach4
53120DISPATCH ASSY10Item CodeCLM0337CM255mm Pitch Footing ChannelEach1
64910FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes10
74910FABRICATION50Item CodeCLM0331CMUniversal Footing Channel Type 1Each1
83120DISPATCH ASSY20Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
93120DISPATCH ASSY30Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
103120DISPATCH ASSY50Item CodeFST0002CMSCREW BUTTON TORX S/S M10 X 16 (TW 111051) (800 QTY)Each4
113120DISPATCH ASSY60Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes10
122190PACK LIST20Item CodeFST013NUT NYLOC M10 Zinc (2000 QTY)Each4
132900Assembly40Item CodePNL1688SBAPS Hand Grip Assy (Pair) (AS4685:2021)Each1
143900Assembly10Item CodePNL0686SBCPS Hand Grip Inner (AS4685:2021) PcoatedEach2
15420POWDERCOAT10Item CodePNL0686SBPS Hand Grip Inner (AS4685:2021)Each1
165100FABRICATION10Item CodePBN0395CM27 OD Hand Grip Inner Bend (AS4685:2021)Each1
175100FABRICATION20Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each1
185100FABRICATION30Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
195100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
20420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
213190PACK LIST20Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
223900Assembly50Item CodeFST0001CBPR/PS Nutsert M10 x 40 AssyEach4
23410PACK LIST10Item CodeFST0005CMSCREW BUTTON TORX S/S M10 X 40 (TW - 18999) (2000 QTY)Each1
244190DISPATCH ASSY20Item CodeFST009NUTSERT M10 SPLINED ZP (TW-17893) - Grip Range .78mm to 3.8mmEach1
254190DISPATCH ASSY30Labour CodeUPRIGHT ASSYNutsert and Cap FitmentMinutes0.5
26410PACK LIST60Labour CodePACKINGPackingMinutes0.5
27420CUT LIST70Labour CodeCUT AND DRILLCut and Drill MetalMinutes1
283190PACK LIST60Item CodeFST0004CMSCREW BUTTON TORX S/S M10 X 25 (800 QTY)Each4
293190PACK LIST30Labour CodePACKINGPackingMinutes15
303900Assembly70Item CodeFST0019CMTube Closure - Plastic 27 x M10 (N782110MMB)Each4
313900Assembly80Item CodePNL0687SBCPS Hand Grip Outer (AS4685:2021) PcoatedEach2
32420POWDERCOAT10Item CodePNL0687SBPS Hand Grip Outer (AS4685:2021)Each1
335100FABRICATION60Item CodeFST0009CMSCREW BUTTON TORX S/S M8 X 20Each2
345100FABRICATION10Item CodePBN0396CM27 OD Hand Grip Outer Bend (AS4685:2021)Each1
355100FABRICATION30Item CodeCST1001SBPS 27 Single Hole Flange (Flat) Machined for 3 screwsEach1
36620EXT MACHINE30Labour CodeHANDLINGHandlingMinutes1
37620EXT MACHINE40Item CodeCST0001SMPS 27 Single Hole Flange (Flat)(AP-005)Each1
38620EXT MACHINE50Descriptor CodeCST1001SEMachine CST0001SM PS 27 Single Hole Flange (Flat)Each1
395100FABRICATION50Labour CodeFABRICATION ASSYFabricated AssemblyMinutes15
405100FABRICATION70Item CodeFST165M8 X 16 RTOX (1000 QTY)Each1
41420POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes4
422190PACK LIST10Item CodeCAP0023CM-BLACKNUT COVER & CAP PLASTIC - 10MM - BlackEach4
432900Assembly90Item CodeSHT0738CBCPfm Support Plate 5mm SS - for Cable Rope Climbers PcoatedEach1
443180POWDERCOAT20Item CodeSHT0738CMPfm Support Plate 5mm SS - for Cable Rope ClimbersEach1
453180POWDERCOAT20Labour CodePOWDERCOATPowder Coating OperationMinutes5
463910EXT PREP30Descriptor CodeFACTORY - EXTERNAL PREPExternal Preperation for Powdercoating$1
472190PACK LIST90Labour CodePACKINGPackingMinutes20
482190PACK LIST50Item CodeFST2000M14 Square Washer Galv - 50x50x3.0Each2
492190PACK LIST30Item CodeFST142Excalibur Screwbolt 12 x 100 DSA 12-100-G Incl. Gal Washer (Dome Head)Each2
502200DISPATCH ASSY90Labour CodeDISPATCH ASSYAssemble as per PicklistMinutes30
512190PACK LIST25Item CodeFST0034CMWASHER FLAT S/S 3/8 X 3/4 X 18" (5000 QTY)Each4
522900Assembly80Item CodeROP0389CBCable Rope for Climber Net 1200 - Chain FootingEach1
53370ROPE LIST140Item CodeCHN0100CMChain 6mm Short Link ST/STEELM2.4
54370ROPE LIST10Item CodeROP0012CMCross Joint Ferrule (GC16-C)Each6
55370ROPE LIST20Item CodeROP0014CMShort Eye Ferrule (GC16-EK - 24mm)Each4
56370ROPE LIST30Item CodeROP0018CMShort T-Cross Joint Ferrule (GC16-TCK)Each6
57370ROPE LIST50Item CodeFST0219CM10G x 2" Csunk Square Drive Quad Screw SSEach12
58370ROPE LIST60Item CodeROP0001CM-BLACKCombi Rope 16 (GC16-RMU) (Black)M7.3
59370ROPE LIST150Labour CodeROPERope AssemblyMinutes115
60370ROPE LIST80Item CodeROP0022CMThimble 14mm to Suit 16mm Rope SSEach4
61370ROPE LIST90Item CodeFST0346M10 x 25 EYE BOLT 23MM EYE DIA SS-580-10Each4
62370ROPE LIST100Item CodeROP0010CMBolt Joint Ferrule Long 55mm (GC16-B)Each4
63370ROPE LIST110Item CodeFST0223-L25Allthread M10 SS 316 - Cut to Length 25mmEach4
644130FABRICATION10Item CodeFST0223CMAllthread M10 x 1000 SS 316Each0.03
654130FABRICATION20Labour CodeFABRICATION ASSYAssembly FabricationMinutes5
66370ROPE LIST120Item CodeKRP5040Chain Boss Flat Surface M10 316 SSEach4
67370ROPE LIST130Item CodeFST0320SCREW BUTTON TORX S/S M8 X 25 (QTY1000)Each4
CLM0022SBA-SM EXPLODED
Hi Herakles

Apologies, I inadvertently posted before completing my responses to your queries. Please see below for the remaining answers.

3. Please see the below XL2BB examples:
- An extract from the original single level BOM report which will be the basis for constructing the multi-level BOMs (for all our products this is currently 80,000+ lines). There is no info to designate a product vs. assembly vs. part
- A manually constructed multilevel BOM (which is ideally how we would want the final report to look).

4. Yes, assumption correct.

5. Yes, assumption correct.

6. Yes, assumption correct - Note: a product is always a parent.

Let me know if you need any more info etc.

Many thanks in advance 🙂.
 
Upvote 0
Hi Andy,
I knew that the method I applied in post #3 would prove to be impractical on large data sets. I was hoping to convert the principle (at least) to an in-memory approach via arrays/collections/dictionaries etc. but unfortunately I've hit a brick wall getting the flow of logic right. I'm not certain I will ever be able to get a workable solution for you, and sincerely hope that those on the forum more advanced than me will come to the rescue. In the meantime, I'd still like to look at the actual data - but you need to make shared file available to anyone with the link (the link you provided is 'restricted'.
Good luck!
Hi Kevin,

All good, thanks for your efforts, it's much appreciated. I have included the XL2BB data in my recent post to Herakles if you wanted to have a look 👍
 
Upvote 0

Forum statistics

Threads
1,224,819
Messages
6,181,153
Members
453,021
Latest member
Justyna P

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