How to Make a Bill of Materials in Excel (2 Types)

 

Type 1 – Making a Bill of Materials for a Single Product

 

Step 1. Create a Basic Dataset for Making a Bill of Materials

We have taken a dataset where there are some product lists with the components needed to make the product. We‘ll utilize these data to make a BOM.

dataset for making a BOM


Step 2. Prepare a Helping Table

We must make the helper columns to create the BOM for a single product.

  • Enter the following formula into cells with the Fill Handle:
=OFFSET(BOM!$C$4,,ROW()-8,,)

In our dataset, the Component Quantity is the total number of components used for a selected product, whereas the Component with Quantity measures the number of individual components of the product.

bringing component names from another sheet

In the code, the OFFSET function in Excel is used to reference a range of cells based on a starting point and specified rows and columns. This formula references the range starting from cell BOM!$C$4 and adjusts the row offset based on the current row minus 8. The range referenced will have the same number of rows as the current row and extend horizontally from the starting cell.

  • Enter the following formula in Cell F8 to find the required components for a product.
  • Use the Fill Handle to copy the formula in the following cells.
=IFERROR(INDEX(BOM!$C$4:$ZZ$9999,MATCH($B$5,BOM!$B$4:$B$9999,0),MATCH(E8,BOM!$C$4:$J$4,0)),0)

finding component quantity from dataset of another sheet

Formula Breakdown

  • INDEX(BOM!$C$4:$ZZ$9999, MATCH($B$5, BOM!$B$4:$B$9999, 0), MATCH(E8, BOM!$C$4:$J$4, 0))

The INDEX function retrieves the value from a range (BOM!$C$4:$ZZ$9999) based on the row and column numbers provided by the MATCH functions.

The first MATCH function (MATCH($B$5, BOM!$B$4:$B$9999, 0)) searches for the value in cell $B$5 in the range BOM!$B$4:$B$9999 and returns the row number where a match is found.

The second MATCH function (MATCH(E8, BOM!$C$4:$J$4, 0)) searches for the value in cell E8 in the range BOM!$C$4:$J$4 and returns the column number where a match is found.

  • IFERROR(formula, 0)

The IFERROR function checks if the formula in step 1 returns an error.

If there is an error (e.g., no match found), it returns 0. Otherwise, it returns the value from the BOM sheet.

  • Afterward, count the number of components for a product. Use the given formulas.

In cell G8.

=IF(F8>0,1,0)

In cell G9.

=IF(F9>0,G8+1,G8)
  • Copy the second formula in the following cells using the Fill Handle.

counting number of components


Step 3. Find Component and Component Quantity for Single Selected Item

  • Enter the following formula in cell B8 to get the required components for a selected product from the list.
  • Use Fill Handle to copy the formula.
=IFERROR(INDEX(E:E,MATCH(ROW()-7,G:G,0),1),"")

filtering component name for specific product

Formula Breakdown:

  • INDEX(E:E, MATCH(ROW()-7, G:G, 0), 1)

The INDEX function retrieves the value from column E based on the row number provided by the MATCH function.

The MATCH function (MATCH(ROW()-7, G:G, 0)) searches for the row number (offset by 7) in column G and returns the position of the matched row.

  • IFERROR(formula, “”)

The IFERROR function checks if the formula in step 1 returns an error.

If there is an error (e.g., no match found), it returns an empty string (“”). Otherwise, it returns the value from column E.

  • Next, find the Component Quantity by using the following formula. Copy the formula in the following cells with the Fill Handle.
=IFERROR($C$5*INDEX(F:F,MATCH(ROW()-7,G:G,0),1),"")

calculating component quantity for single selected product

Formula Breakdown:

  • $C$5 * INDEX(F:F, MATCH(ROW()-7, G:G, 0), 1)

The INDEX function retrieves the value from column F based on the row number provided by the MATCH function.

The MATCH function (MATCH(ROW()-7, G:G, 0)) searches for the row number (offset by 7) in column G and returns the position of the matched row.

The retrieved value from column F is then multiplied by the value in cell $C$5.

  • IFERROR(formula, “”)

The IFERROR function checks if the formula in step 1 returns an error.

If there is an error (e.g., no match found), it returns an empty string (“”). Otherwise, it returns the result of the multiplication.


Step 4. Calculate the Total Price of the Product

  • Enter the following formula to calculate the total price of the product. We assumed the unit price was $25.
=C5*D5

calculating total bill with formula


Type 2: Making a Bill of Materials for Multiple Products

 

Step 1. Modify for Finding Component and Component Quantity for Multiple Selected Products (Helper Table)

  • Enter the following formula in Cell B6 to enlist the component quantity for each component for multiple selected products.
  • Copy the formula in the following cells with the Fill Handle.
=IFERROR($C16*INDEX(BOM!$C$4:$ZZ$9999,MATCH($B16,BOM!$B$4:$B$9999,0),MATCH(B$4,BOM!$C$4:$J$4,0)),0)

finding components for multiple products

Formula Breakdown:

  • $C16 * INDEX(BOM!$C$4:$ZZ$9999, MATCH($B16, BOM!$B$4:$B$9999, 0), MATCH(B$4, BOM!$C$4:$J$4, 0))

The INDEX function retrieves the value from the BOM range (BOM!$C$4:$ZZ$9999) based on the row and column numbers provided by the MATCH functions.

The first MATCH function (MATCH($B16, BOM!$B$4:$B$9999, 0)) searches for the value in cell $B16 in the range BOM!$B$4:$B$9999 and returns the row number where a match is found.

The second MATCH function (MATCH(B$4, BOM!$C$4:$J$4, 0)) searches for the value in cell B$4 in the range BOM!$C$4:$J$4 and returns the column number where a match is found.

The retrieved value from the BOM range is then multiplied by the value in cell $C16.

  • IFERROR(formula, 0)

The IFERROR function checks if the formula in step 1 returns an error.

If there is an error (e.g., no match found), it returns 0. Otherwise, it returns the result of the multiplication.

  • Calculate the total requirement of a component for all selected products.
  • Enter the following formula in Cell B5:
=SUM(B6:B13)

sum of each component quantity for all materials to make a bill in Excel


Step 2. Determining Component Name and Component Quantity

  • Enter the component names in cell range K5:K12.

entering component names

  • Enter the following formula in cell L5 to get the component quantity required.
  • Copy the formula in the following cells with the Fill Handle.
=HLOOKUP(K5,$4:$5,2,0)

Found total quantity for each component to make Bill of Materials in Excel

  • In the formula, The HLOOKUP function searches for the value in cell K5 within the range of rows 4 to 5 ($4:$5). It returns the value from the second row of the matched column. The final argument of 0 specifies an exact match.

Step 3. Determine the Total Price of the Product

  • Enter the following formula to get the total price of products:
=C16*D16

Calculating Total price for multiple products

In the formula, we multiplied the Unit Price by Quantity to get the Total Price.


Things to Remember

  • Be careful regarding the Cell reference used in the formulas.
  • Use the Fill Handle to avoid the repetition of writing the same formula.

Download Practice Workbook

You can download the practice workbook from here.

Get FREE Advanced Excel Exercises with Solutions!
Mehedi Hasan Shimul
Mehedi Hasan Shimul

Md. Mehedi Hasan, with a BSc in Electrical & Electronic Engineering from Bangladesh University of Engineering and Technology, holds a crucial position as an Excel & VBA Content Developer at ExcelDemy. Driven by a deep passion for research and innovation, he actively immerses himself in Excel. In his role, Mehedi not only skillfully addresses complex challenges but also exhibits enthusiasm and expertise in gracefully navigating tough situations, emphasizing his steadfast commitment to consistently deliver exceptional and quality content.... Read Full Bio

We will be happy to hear your thoughts

Leave a reply

Advanced Excel Exercises with Solutions PDF

 

 

ExcelDemy
Logo