How to Add Multiple Columns in Power BI Matrix

Cody Schneider••6 min read

The Power BI Matrix visual is one of the most versatile tools for summarizing data, acting much like a supercharged PivotTable. However, users often get stuck trying to do something that seems simple: displaying multiple, distinct columns side-by-side. By default, the Matrix wants to create hierarchies and drill-downs. This article will show you exactly how to break free from that default and build matrices with the independent columns you need, using a few different methods suited for any skill level.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Understanding the Default Behavior of the Matrix Visual

Before fixing the problem, it’s helpful to understand why it happens in the first place. The Matrix visual in Power BI has three main data wells: Rows, Columns, and Values.

  • Rows: Fields you drag here will populate the row headers of your table. Adding multiple fields creates a row hierarchy you can expand and collapse (e.g., Category > Subcategory).
  • Values: This field is for your numbers - the quantifiable data you want to measure, like sales amounts, profit margins, or unit counts. These are typically numeric fields that are summarized (Sum, Average, Count, etc.).
  • Columns: This is where the confusion often begins. If you drag a categorical field (like Year, Region, or Product Type) into the Columns well, it creates a top-level column. If you drag a second categorical field, Power BI doesn’t add it as a new, parallel column, instead, it creates a drill-down hierarchy. You’ll see the first field with a small "+" icon to expand into the second field.

For example, if you place 'Fiscal Year' and then 'Sales Territory' into the Columns well, you won’t get separate columns for year and territory. You’ll get columns for each year, and you’ll have to expand each one to see the territories within. This is useful for hierarchical analysis but fails when you simply want to see 'Total Sales,' 'Total Profit,' and 'Order Count' as three clean, side-by-side columns.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Method 1: The Easy Way with Multiple Measures

If your goal is to display several different calculated numbers (known as measures) as separate columns, the solution is straightforward. This is the most common use case, where you want to compare different metrics for the same row category.

Let’s say you have a table showing sales data and you want to see Total Sales, Average Selling Price, and Order Quantity for each Product Subcategory.

Step-by-Step Instructions:

  1. Select the Matrix visual from the Visualizations pane and add it to your canvas.
  2. Drag a categorical field, like ProductSubcategoryName, from your Fields pane into the Rows well.
  3. Now, drag your first numeric measure, such as SalesAmount, into the Values well. Power BI will automatically create a measure like 'Sum of SalesAmount'.
  4. Drag your second measure, like UnitPrice, into the Values well right below the first one. By default, Power BI may sum this, so click the dropdown on the field and change the aggregation to 'Average'.
  5. Finally, drag your third measure, like OrderQuantity, into the Values well and ensure it is set to 'Sum'.

The result is a matrix with your 'Product Subcategories' as rows and three distinct columns: 'Sum of SalesAmount,' 'Average of UnitPrice,' and 'Sum of OrderQuantity.' The Matrix visual automatically places fields from the Values well into their own columns.

Tip: Sometimes, a setting might cause these values to stack in a single column under a 'Values' header. To fix this, go to the Format your visual pane (the paintbrush icon), expand the Values section, and find the "Switch values to rows" toggle. Make sure this is turned OFF to keep your measures in separate columns.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Method 2: The Powerful Way with DAX Measures

What if your requirements are more complex? Often, you don't just want different measures, you want the same measure filtered differently in each column. For instance, you want to show 'Sales for 2022' in column one, 'Sales for 2023' in column two, and 'Sales for 2024' in column three. You can't achieve this by dragging 'Fiscal Year' into the columns well because that would create a hierarchy.

The solution is to create specific measures using DAX (Data Analysis Expressions). This sounds intimidating, but it's remarkably potent once you grasp the basics of the CALCULATE function.

The CALCULATE function allows you to evaluate an expression (like a sum of sales) in a modified filter context. In plain English, you can tell Power BI, "Calculate the total sales, but only for records where the year is 2023."

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Step-by-Step Instructions:

1. Create Your Base Measure

It's always good practice to have a base measure that performs the core calculation. This makes your more complex formulas cleaner and easier to manage.

  • Go to the 'Modeling' tab in the Power BI ribbon and click 'New Measure'.
  • Enter the following DAX formula and press Enter:

Total Sales = SUM(Sales[SalesAmount])

2. Create a Specific Measure for Each Column

Now, we will use our base measure inside CALCULATE to create a separate measure for each filtered column we need. Let's create one for sales in 2022.

  • Click 'New Measure' again.
  • Enter this formula. This code calculates the [Total Sales] measure, but applies a filter to only include data where the FiscalYear column in the 'Date' table is equal to '2022'.

Sales 2022 = CALCULATE( [Total Sales], 'Date'[FiscalYear] = 2022 )

  • Repeat this process for any other columns you need. For example, for 2023 sales:

Sales 2023 = CALCULATE( [Total Sales], 'Date'[FiscalYear] = 2023 )

3. Build Your Matrix

Once you have all your new, specific measures created, building the visual is easy.

  1. Create a new Matrix visual.
  2. Drag your desired category, like ProductCategoryName, to the Rows well.
  3. Drag your newly created DAX measures - Sales 2022 and Sales 2023 - into the Values well.

The output will be a perfect matrix with a column for 'Sales 2022' and a column for 'Sales 2023', exactly as you specified. This method gives you complete control over your columns and is the most robust way to build customized tables.

Method 3: A Clever Workaround Using Power Query

Sometimes you need to group values into columns, but the groups don't exist as a neat column in your data. For example, maybe you want to see all your sales broken into two columns: "Domestic" (USA, Canada) and "International" (all other countries). You could use DAX, but there's often a simpler way using the Power Query Editor.

Related Articles