{"text_format":"1","workbook":"xlsx","n_sheets":5,"sheets":["Home","Single-level BOM","Multi-level BOM","BlankPage","DevFrame"],"not_rendered":{"charts":0,"images":1,"macros":1,"external_links":0,"defined_names":94,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Home","index":0,"n_rows":130,"n_cols":8,"rows_kept":130,"cut":false,"hidden":false,"merged":[[90,4,92,4],[108,4,108,5],[96,4,96,5],[5,4,5,5],[57,4,58,4],[12,4,13,5],[18,4,23,5],[24,4,29,5],[67,4,69,4],[84,4,86,4],[63,4,66,4],[74,4,76,4],[81,4,83,4],[87,4,89,4],[101,4,105,5],[77,4,80,4]]}
["DevFrame settings",null,"H",null,null,null,null,"HL"]
["HiddenStatus","VISIBLE",null,null,null,"ENGINEXCEL"]
["ProtectSheet",true,null,null,null,"alessandro@enginexcel.com"]
["HeadingsVisibility",false,null,null,null,"enginexcel.com"]
["GridlineVisibility",false]
[null,null,null,null,"BOM COMPARISON v2"]
["Protection settings"]
["DrawingObjects",true]
["Contents",true]
["Scenarios",true]
["UserInterfaceOnly",true]
["AllowFormattingCells",false,null,null,"Introduction"]
["AllowFormattingColumns",false,null,null,"This spreadsheet allows to automatically compare two BOMs and show the differences. It is possible to perform 2 types of comparisons:"]
["AllowFormattingRows",false]
["AllowInsertingColumns",false,null,null," - Single-level"]
["AllowInsertingRows",false,null,null," - Multi-level"]
["AllowInsertingHyperlinks",false]
["AllowDeletingColumns",false,null,null,"Difference between BOM comparison Single-level and BOM comparison Multi-level"]
["AllowDeletingRows",false,null,null,"A Single-level BOM only contains the fundamental components that form an assembly. Typically these are parts, fasteners, purchased components, etc. A single-level BOM doesn't contain assemblies.\nThe components in a Single-level BOM are shown in their total number, so they will only appear in the BOM once and their quantities will be added. For example, if a fastener is used in quantity 1 in a sub-assembly and in quantity 2 in another sub-assembly, it will appear once in the single-level BOM and it will have quantity 3."]
["AllowSorting",false]
["AllowFiltering",false]
["AllowUsingPivotTables",false]
["EnableSelection",true]
[]
["Other settings",null,null,null,"A Multi-level BOM contains all the items that form an assembly. Typically these are assemblies, parts, fasteners, purchased components, etc.\nAll the items in a multi-level BOM are shown in the position that they occupy in the assembly. For example, if a part and a fastener belong to a sub-assembly, they will appear in the BOM as children of the sub-assembly. Because of that, components can appear in a Multi-level BOM more than once, and each instance can have different quantities."]
["MarkProtectedCellsStatus",false]
["RowColumnDimensionStatus",false]
[]
[]
[]
[]
[null,null,null,null,"Features"]
[null,null,null,null,"- BOM selection"]
[null,null,null,null,"      - BOM can be selected from different locations/spreadsheets"]
[null,null,null,null,"      - No BOM size constraints"]
[null,null,null,null,"      - Automatic verification of BOMs congruence"]
[null,null,null,null,"- Single-level and Multi-level BOM comparison"]
[null,null,null,null,"- Duplicates analysis (only on Single-level comparison)"]
[null,null,null,null,"      - Duplicate components are automatically added"]
[null,null,null,null,"      - If preferred, the user has the option to be notified if there are duplicate parts"]
[null,null,null,null,"- BOM comparison"]
[null,null,null,null,"      - Automated BOM comparison"]
[null,null,null,null,"      - Results display order: alphabetical (on Single-level comparison), old BOM and new BOM order"]
[null,null,null,null,"      - Different options for level field (only on Multi-level comparison)"]
[null,null,null,null,"      - Possibility to compare 2 items with different item ID (only on Multi-level comparison)"]
[null,null,null,null,"      - Possibility to multiply items quantity by parent quantity (only on Multi-level comparison)"]
[null,null,null,null,"- Display of results"]
[null,null,null,null,"      - Results automatically formatted"]
[null,null,null,null,"      - Results can be filtered"]
[null,null,null,null,"- Add-in for Excel available"]
[]
[null,null,null,null,"General instructions"]
[null,null,null,null,"Operation","How to"]
[null,null,null,null,"How to start the BOM comparison tool (spreadsheet version)","Single-level: Click on \"Run Single-level BOM comparison\" button in the sheet \"Single-level BOM\".\nMulti-level: Click on \"Run Multi-level BOM comparison\" button in the sheet \"Multi-level BOM\". "]
[null,null,null,null,"How to start the BOM comparison tool (add-in version)","Single-level: Click on \"Run Single-level BOM comparison\" button in the add-in bar.\nMulti-level: Click on \"Run Multi-level BOM comparison\" button in the add-in bar. "]
[null,null,null,null,"How to select the old BOM","Start the BOM comparison tool.\nClick on the button under \"Select the OLD bom range (including titles):\".\nSelect the cells where the old BOM is. The titles must be included in the selection and must occupy the first row.\nDo not select empty cells or entire columns."]
[null,null,null,null,"How to select the new BOM","Start the BOM comparison tool.\nClick on the button under \"Select the NEW bom range (including titles):\".\nSelect the cells where the new BOM is. The titles must be included in the selection and must occupy the first row.\nDo not select empty cells or entire columns."]
[null,null,null,null,"How to launch a comparison","Start the BOM comparison tool.\nSelect the old and the new BOMs.\nClick on \"Next -->\".\nFrom the dropdown menus select the name of the columns that contain:\n - Unique identifier: this is the part number, which must be unique for each part."]
[null,null,null,null,null," - Quantity: this is the quantity of the part.\n - Level: this is the level at which the part is located. This is not always needed (it depends on the type of comparison).\nClick on \"OK\"."]
[]
[]
[null,null,null,null,"Single-level BOM comparison instructions"]
[null,null,null,null,"Operation","How to"]
[null,null,null,null,"How to define the order in which results will be displayed","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Results order?\":"]
[null,null,null,null,null,"Alphabetical order: results are ordered alphabetically by the unique identifier column."]
[null,null,null,null,null,"Old BOM order: results are ordered following the order of the NEW BOM. This is preferred if you want to refer to the NEW BOM to analyze the results."]
[null,null,null,null,null,"New BOM order: results are ordered following the order of the OLD BOM. This is preferred if you want to refer to the OLD BOM to analyze the results."]
[null,null,null,null,"How to define if duplicate parts (parts that appear more than once in the BOM) will be automatically combined.","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Automatically combine duplicate parts?\":"]
[null,null,null,null,null,"Yes: parts that appear more than once in the BOM are combined. This means that the duplicate parts will be shown only once, and the quantity shown will be the sum of all the quantities of the parts that have been recombined."]
[null,null,null,null,null,"No: if a part appears more than once, a message is shown to the user. The user can manually remove the duplicate parts."]
[]
[]
[null,null,null,null,"Multi-level BOM comparison instructions"]
[null,null,null,null,"Operation","How to"]
[null,null,null,null,"How to define the order in which results will be displayed","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Results order?\":"]
[null,null,null,null,null,"Old BOM order: results are ordered following the order of the NEW BOM. This is preferred if you want to refer to the NEW BOM to analyze the results."]
[null,null,null,null,null,"New BOM order: results are ordered following the order of the OLD BOM. This is preferred if you want to refer to the OLD BOM to analyze the results."]
[null,null,null,null,"How to indicate how the level is defined in the input BOM","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Level indicator of the input BOM\":"]
[null,null,null,null,null,"Number: Level is defined by a number. For example, the top level of the assembly has Level = 1, all its children have Level = 2, all its grandchildren have Level = 3, etc."]
[null,null,null,null,null,"Index: Level is defined by an index, which is a number where different levels are separated by an Index separator. For example, if the Index separator is a point '.', then:\n - The top level of the assembly has Level = 1\" \n - Its children have Level 1.1, 1.2, 1.3.\" \n - All the children of 1.2 have level 1.2.1, 1.2.2, 1.2.3, etc.\""]
[null,null,null,null,null,"Group: Grouping is an Excel function under the tab 'Data' \n--> 'Outline'. Groups are visible by a series of '+' and '-' symbols at the left side of the screen. When you click on the '+' symbol, the children of a part are shown. When you click on the '-' symbol, the children are hidden."]
[null,null,null,null,"How to compare the BOMs of 2 components that have a very similar BOM, but have different unique identificator (= different item ID)","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Ignore first item?\":"]
[null,null,null,null,null,"Yes: ignore the first item. The unique identifier or the first line of the BOMs will be marked with a wild card so that the comparison will not highlight their difference."]
[null,null,null,null,null,"No: do not ignore the first item. If the 2 main parents are different, the comparison will mark that as a difference."]
[null,null,null,null,"How to multiply components quantity by their parent quantity","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Multiply quantity by parent quantity?\":"]
[null,null,null,null,null,"Yes: the quantity of each child is multiplied by the quantity of its parent. For example, if the parent has quantity 3 and its child has quantity 5, the child will be shown with quantity 15 (= 3x5)."]
[null,null,null,null,null,"No: quantities are left as they are in the input file."]
[null,null,null,null,"How to add indentation to the levels in the results page (to facilitate the reading of the results)","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Show level indentation?\":"]
[null,null,null,null,null,"Yes: levels are shown with an indentation based on the level. The top level has a smaller indentation than the second level, the second level has a smaller indentation than the third level, etc."]
[null,null,null,null,null,"No: All levels are shown in the same way."]
[null,null,null,null,"How to add grouping to the results","Open the BOM comparison tool.\nClick on \"Settings\" button.\nSelect one of the options in the area marked \"Group results?\":"]
[null,null,null,null,null,"Yes: results of the comparison are grouped."]
[null,null,null,null,null,"No: results of the comparison are not grouped."]
[]
[]
[null,null,null,null,"Terms of use"]
[null,null,null,null,"If you are using this spreadsheet you accept the terms of use:"]
[null,null,null,null,"http://enginexcel.com/terms-of-use"]
[null,null,null,null,"https://enginexcel.com/terms-of-use-bom-comparison-v2"]
[]
[null,null,null,null,"Disclaimer"]
[null,null,null,null,"Although the author has attempted to find and correct any bugs in the spreadsheet, the author is not responsible for any damage or losses of any kind caused by the use or misuse of the spreadsheet.\nThe author is under no obligation to provide support, service, corrections, or upgrades to the spreadsheet.\nFor more information, please send an email to the author (see contacts on top of the page)."]
[]
[]
[]
[]
[]
[null,null,null,null,"Compatibility"]
[null,null,null,null,"The compatibility of this spreadsheet has been verified on:"]
[null,null,null,null," - Microsoft Excel 2013"]
[null,null,null,null," - Microsoft Excel 2016"]
[null,null,null,null," - Microsoft Excel 2019"]
[null,null,null,null," - Microsoft Excel 2021"]
[null,null,null,null," - Microsoft Excel 365"]
[]
[null,null,null,null,"Version history"]
[null,null,null,null,"2.0   -   17/07/2022","First beta release"]
[null,null,null,null,"2.1   -   20/08/2022","First release"]
[null,null,null,null,"2.2   -   27/08/2022","Fixed issue with Multi-level options.\nVarious improvements in license tool."]
[null,null,null,null,"2.3   -   16/09/2022","Fixed issue with sum of non-integer quantities in parts-only BOM."]
[null,null,null,null,"2.4   -   05/09/2023","Solved issue with numbers to be displayed as text."]
[null,null,null,null,"2.5   -   15/05/2024","Solved issue with levels to be displayed as text."]
[null,null,null,null,"2.6   -   22/12/2024","Enabled running with more than 30000 BOM lines."]
[null,null,null,null,"2.7   -   05/03/2025","Corrected license issue."]
[null,null,null,null,"2.8   -   01/09/2025","Solved issue with RefEdit"]
[]
[null,null,null,null,"Copyright"]
[null,null,null,null,"EnginExcel, All rights reserved"]
[]
[null,null,"HL"]

{"sheet":"Single-level BOM","index":1,"n_rows":22,"n_cols":10,"rows_kept":22,"cut":false,"hidden":false,"merged":[[0,6,2,9],[5,1,5,4],[5,6,5,9]]}
[null,null,null,null,null,null,"SINGLE-LEVEL BOM"]
[]
[]
[]
[]
[null,"NEW",null,null,null,null,"OLD"]
[null,"Part No","Description","Qty","Material",null,"Part No","Description","Qty","Material"]
[null,"B022","Carbon frame",1,"Carbon fibre",null,"B003","Frame",1,"Aluminium"]
[null,"B004","Fork",1,"Carbon fibre",null,"B004","Fork",1,"Carbon fibre"]
[null,"B005","Bearing",2,"Ceramic",null,"B005","Bearing",2,"Steel"]
[null,"B006","Screw",2,"Steel",null,"B006","Screw",2,"Steel"]
[null,"B008","Spoke",68,"Steel",null,"B008","Spoke",64,"Steel"]
[null,"B009","Rim",2,"Aluminium",null,"B009","Rim",2,"Aluminium"]
[null,"B010","Sprocket",1,"Steel",null,"B010","Sprocket",1,"Steel"]
[null,"B023","Road tyre",2,"Rubber",null,"B011","Tyre",2,"Rubber"]
[null,"B013","Saddle",1,"Leather",null,"B013","Saddle",1,"Leather"]
[null,"B018","Brake lever",2,"Aluminium",null,"B018","Brake lever",2,"Aluminium"]
[null,"B019","Brake cable",2,"Steel",null,"B019","Brake cable",2,"Steel"]
[null,"B020","Brake screw",2,"Steel",null,"B020","Brake screw",2,"Steel"]
[null,"B016","Pivot arm left",2,"Aluminium",null,"B016","Pivot arm 1",2,"Aluminium"]
[null,"B017","Pivot arm right",2,"Aluminium",null,"B017","Pivot arm 2",2,"Aluminium"]
[null,"B021","Brake pad ",4,"Mixed",null,"B021","Brake pad ",4,"Mixed"]

{"sheet":"Multi-level BOM","index":2,"n_rows":31,"n_cols":12,"rows_kept":31,"cut":false,"hidden":false,"merged":[[0,6,2,9],[5,1,5,5],[5,7,5,11]]}
[null,null,null,null,null,null,"MULTI-LEVEL BOM"]
[]
[]
[]
[]
[null,"NEW",null,null,null,null,null,"OLD"]
[null,"Level","Part No","Description","Qty","Material",null,"Level","Part No","Description","Qty","Material"]
[null,1,"B001","Bike assembly",1,"-",null,1,"B001","Bike assembly",1,"-"]
[null,2,"B002","Frame assembly ",1,"-",null,2,"B002","Frame assembly ",1,"-"]
[null,3,"B022","Carbon frame",1,"Carbon fibre",null,3,"B003","Frame",1,"Aluminium"]
[null,3,"B004","Fork",1,"Carbon fibre",null,3,"B004","Fork",1,"Carbon fibre"]
[null,3,"B005","Bearing",2,"Ceramic",null,3,"B005","Bearing",2,"Steel"]
[null,3,"B006","Screw",2,"Steel",null,3,"B006","Screw",2,"Steel"]
[null,2,"B007","Back wheel assembly",1,"-",null,2,"B007","Back wheel assembly",1,"-"]
[null,3,"B008","Spoke",34,"Steel",null,3,"B008","Spoke",32,"Steel"]
[null,3,"B009","Rim",1,"Aluminium",null,3,"B009","Rim",1,"Aluminium"]
[null,3,"B010","Sprocket",1,"Steel",null,3,"B010","Sprocket",1,"Steel"]
[null,3,"B023","Road tyre",1,"Rubber",null,3,"B011","Tyre",1,"Rubber"]
[null,2,"B012","Front wheel assembly",1,"-",null,2,"B012","Front wheel assembly",1,"-"]
[null,3,"B008","Spoke",34,"Steel",null,3,"B008","Spoke",32,"Steel"]
[null,3,"B009","Rim ",1,"Aluminium",null,3,"B009","Rim ",1,"Aluminium"]
[null,3,"B023","Road tyre",1,"Rubber",null,3,"B011","Tyre",1,"Rubber"]
[null,2,"B013","Saddle",1,"Leather",null,2,"B013","Saddle",1,"Leather"]
[null,2,"B014","Brakes assembly",2,"-",null,2,"B014","Brakes assembly",2,"-"]
[null,3,"B015","Brake lever assembly",1,"-",null,3,"B015","Brake lever assembly",1,"-"]
[null,4,"B018","Brake lever",1,"Aluminium",null,4,"B018","Brake lever",1,"Aluminium"]
[null,4,"B019","Brake cable",1,"Steel",null,4,"B019","Brake cable",1,"Steel"]
[null,4,"B020","Brake screw",1,"Steel",null,4,"B020","Brake screw",1,"Steel"]
[null,3,"B016","Pivot arm left",1,"Aluminium",null,3,"B016","Pivot arm 1",1,"Aluminium"]
[null,3,"B017","Pivot arm right",1,"Aluminium",null,3,"B017","Pivot arm 2",1,"Aluminium"]
[null,3,"B021","Brake pad",2,"Mixed",null,3,"B021","Brake pad",2,"Mixed"]

{"sheet":"BlankPage","index":3,"n_rows":33,"n_cols":17,"rows_kept":33,"cut":false,"hidden":true,"merged":[[1,8,3,13]]}
["DevFrame settings",null,"H",null,null,null,null,null,null,null,null,null,null,null,null,null,"HL"]
["HiddenStatus","VERY HIDDEN",null,null,null,null,null,null,"OLD BOM"]
["ProtectSheet",false]
["HeadingsVisibility",false]
["GridlineVisibility",false]
[]
["Protection settings"]
["DrawingObjects",true]
["Contents",true]
["Scenarios",true]
["UserInterfaceOnly",false]
["AllowFormattingCells",false]
["AllowFormattingColumns",false]
["AllowFormattingRows",false]
["AllowInsertingColumns",false]
["AllowInsertingRows",false]
["AllowInsertingHyperlinks",false]
["AllowDeletingColumns",false]
["AllowDeletingRows",false]
["AllowSorting",false]
["AllowFiltering",false]
["AllowUsingPivotTables",false]
["EnableSelection",false]
[]
["Other settings"]
["MarkProtectedCellsStatus",true]
["RowColumnDimensionStatus",false]
[]
[]
[]
["TableStart"]
["TableStartRow",{"$f":"ROW(TableStart)","v":6},"HL"]
["TableStartColumn",{"$f":"COLUMN(TableStart)","v":5}]

{"sheet":"DevFrame","index":4,"n_rows":38,"n_cols":6,"rows_kept":38,"cut":false,"hidden":true,"merged":[]}
["DevFrame settings",null,"H"]
["HiddenStatus","VERY HIDDEN",null,"HiddenStatuses","TrueFalse"]
["ProtectSheet",false,null,"VISIBLE",true]
["HeadingsVisibility",true,null,"HIDDEN",false]
["GridlineVisibility",true,null,"VERY HIDDEN"]
[]
["Protection settings",null,null,"ProgrammingMode"]
["DrawingObjects",true,null,false]
["Contents",true]
["Scenarios",true,null,"AllowAddSheet","ProtectedView"]
["UserInterfaceOnly",false,null,true,false]
["AllowFormattingCells",false]
["AllowFormattingColumns",false]
["AllowFormattingRows",false]
["AllowInsertingColumns",false,null,null,"DEVELOPMENT FRAME"]
["AllowInsertingRows",false,null,"Features:"]
["AllowInsertingHyperlinks",false,null,"- Define visibility status of each sheet"]
["AllowDeletingColumns",false,null,"- Define which cells to protect"]
["AllowDeletingRows",false,null,"- Protect sheet with password"]
["AllowSorting",false,null,"- Define if to show the headings of each page"]
["AllowFiltering",false,null,"- Define if to show the gridline in each page"]
["AllowUsingPivotTables",false,null,"- Dev frame is protected by separate password"]
["EnableSelection",false,null,"- Define which rows and columns to hide"]
[null,null,null,"      - Rows and columns with \"H\" are hidden"]
["Other settings",null,null,"      - From the last \"H\", all the following rows (or columns) are hidden"]
["MarkProtectedCellsStatus",true]
["RowColumnDimensionStatus",false,null,"Activation:"]
[null,null,null,"- Activate development frame: CTRL + r"]
[null,null,null,"- Protect a selected cell: CTRL + p"]
[null,null,null,"- Unprotect a selected cell: CTRL + o"]
[]
[null,null,null,"Version control:"]
[null,null,null,"Version","Release date","Changed features"]
[null,null,null,"1.0","2017-01-08","First issue"]
[null,null,null,"1.1","2017-01-18","Updated SubErrorHandler (writes log file"]
[null,null,null,"1.2","2017-02-10","Added EnableSelection option"]
[null,null,null,"1.4","2017-03-10","Added UserInterfaceOnly renewal at workbook open"]
[null,null,null,"1.5","2017-05-21","Added TableStart variable and HL row-hiding parameter"]