How to Compare 2 Columns in Power BI

Cody Schneider8 min read

Comparing two columns is one of the most fundamental tasks in data analysis, and Power BI offers a few straightforward ways to get it done. Whether you need to check actuals against a budget, validate data from two different sources, or simply see how two values stack up, this guide will walk you through the process step-by-step. We’ll cover how to create dedicated comparison columns using DAX and how to apply quick visual cues with conditional formatting.

Why Compare Columns in Power BI?

Before jumping into the "how," it's helpful to understand the "why." Comparing columns isn't just a technical exercise, it's the foundation for many powerful business insights. Here are a few common scenarios where this skill is essential:

  • Variance Analysis: The most common use case is comparing actual performance against a target or budget. For example, comparing an "Actual Sales" column to a "Budgeted Sales" column to see which products or regions are over- or under-performing.
  • Data Validation & Cleansing: When you combine data from multiple sources, you often need to verify that information matches. You might compare an "Email" column from your CRM with an "Email" column from your email marketing platform to find discrepancies.
  • Before-and-After Analysis: You can compare a column of "Old Prices" to "New Prices" to calculate the impact of a price change. Or, you could compare "Last Month's Website Traffic" to "This Month's Website Traffic" by user to spot trends.
  • Tracking Status Changes: By comparing a "Previous Status" column to a "Current Status" column, you can easily track changes in a project's progress, a sales lead's stage, or a support ticket's status. It allows you to quickly filter for items that have changed.

No matter the use case, mastering column comparison lets you move from just looking at data to actively questioning and understanding it.

Method 1: Create a Comparison Column with DAX

The most flexible and powerful way to compare columns is by using a DAX (Data Analysis Expressions) formula to create a calculated column. A calculated column works just like any other column in your table - you can use it in charts, filters, slicers, and other calculations. This makes it an ideal method for creating permanent, reusable logic in your report.

Let’s work through a classic example: comparing "Actual Sales" to "Target Sales" for a list of products.

Step 1: Open Your Data Table in Power BI Desktop

For this example, assume you have a table named ‘SalesData’ that contains at least two numerical columns: ActualSales and TargetSales. Navigate to the "Data" view in Power BI Desktop (the second icon on the left-hand pane that looks like a grid). Select the table you want to work with from the "Data" pane on the right.

Step 2: Create a New Column

With your table selected, you'll see the "Table tools" tab appear in the top ribbon. Click on "New column." This will open up the formula bar at the top of the screen, where you can enter your DAX expression. Power BI will assign a default name of "Column," which we will change.

Step 3: Write Your DAX Formula using IF()

We'll use the simple but powerful IF function. The IF function checks a condition and returns one value if the condition is TRUE, and another value if it's FALSE.

In the formula bar, type the following expression:

Performance = IF([ActualSales] > [TargetSales], "Above Target", "Below or on Target")

Let's break that down:

  • Performance = This is the name we are giving our new calculated column. You can name it whatever you like.
  • IF(...): This tells Power BI we are starting a logical test.
  • [ActualSales] > [TargetSales]: This is our logical test. For each row in the table, Power BI checks if the value in the ActualSales column is greater than the value in the TargetSales column.
  • "Above Target": This is the value to return if the condition is TRUE. If ActualSales are indeed greater, our new column for that row will say "Above Target".
  • "Below or on Target": This is the value to return if the condition is FALSE.

Once you’ve written the formula, hit Enter. Power BI will instantly calculate the result for every single row in your table, creating a new ‘Performance’ column with the text results. You can now use this column to easily count, filter, or visualize how many products are hitting their goals.

Going Deeper: Calculating the Variance

A text label like "Above Target" is good, but what if you want to know how much above or below target you are? You can create another calculated column to show the variance as a number.

Create another new column and use this simple formula:

Variance = [ActualSales] - [TargetSales]

This will give you the raw difference. For an even clearer picture, calculate the percentage variance with this formula:

Variance Pct = DIVIDE(([ActualSales] - [TargetSales]), [TargetSales])

Make sure to format this new column as a percentage using the "Column tools" in the ribbon. The DIVIDE() function is safer than using a slash (/) because it automatically handles cases where the target might be zero, preventing errors.

Method 2: Use Conditional Formatting for a Quick Visual Comparison

Sometimes you don’t need a permanent new column. You might just want a fast, visual way to highlight differences directly in a table or matrix visual. This is where conditional formatting is perfect.

Using the same SalesData table, let's highlight cells in our ActualSales column based on how they compare to TargetSales.

Step 1: Create a Table Visual

Go to the "Report" view (the top icon on the left pane). Create a Table visual and add your key fields, such as Product Name, TargetSales, and ActualSales. You will now have a simple table showing the numbers side-by-side.

Step 2: Access Conditional Formatting Settings

Select your table visual. In the "Visualizations" pane on the right, click the "Format your visual" icon (the paintbrush). Expand the "Cell elements" section. This is where you can apply formatting rules to specific columns in your visual.

In the "Apply settings to" dropdown, make sure you have ActualSales selected, as this is the column we want to format. Now, toggle on one of the options, like "Icons" or "Background color." Let's use Icons for this example.

Step 3: Define "Format by rules"

After you toggle on "Icons," a pop-up window or advanced controls will appear. By default, it bases the rules on the column's own value. We want to change this to base the rules on our TargetSales column.

  1. Change the "Format style" to Rules.
  2. Under "Apply to," ensure it says "Values only."
  3. Under "What field should we base this on?", select your comparison column: TargetSales. Power BI will automatically summarize it (usually as "Sum"). Leave that as is for now.
  4. Now, let's create our rules for the icons. We can set up a simple red/green system:

Just click "OK." Your table instantly transforms. Now, the ActualSales column has a clear visual indicator next to each number, showing whether it met its corresponding target at a glance. You didn't have to create any new columns, and the insight is immediate.

Bonus Method: Comparing Two Text Columns

Not all comparisons involve numbers. You may need to verify if two text entries, like a username from System A and a username from System B, match.

Let's say your table 'CustomerData' has columns named CRM_Email and SupportTicket_Email. The process is nearly identical to our first DAX method.

  1. Create a "New column" in your 'CustomerData' table.
  2. Use a simple equality check in your IF statement:

Email Match = IF([CRM_Email] = [SupportTicket_Email], "Match", "Mismatch")

Handling Case-Sensitivity in Text

A quick word of caution: by default, DAX comparisons are not case-sensitive ("email@email.com" is equal to "Email@email.com"). While this is often helpful, sometimes you need a strict, case-sensitive check. Power BI's query editor (Power Query) is a better environment for that level of data cleansing. However, you can also force case-sensitivity by using functions like UPPER() or LOWER() on both sides to standardize them and ensure your comparison is purely based on the characters themselves, not their casing.

For a reliable check, it's best to standardize the cases:

Email Match = IF(LOWER([CRM_Email]) = LOWER([SupportTicket_Email]), "Match", "Mismatch")

This formula converts both email addresses to lowercase before comparing them, removing case-related issues and ensuring a more accurate match.

Final Thoughts

Learning how to compare columns is a gateway skill in Power BI that lets you add layers of intelligence to your reports. By creating calculated columns with DAX, you build a robust and reusable analytical foundation, while conditional formatting provides immediate visual context directly where it's needed.

We know that learning DAX and navigating the menus in tools like Power BI can feel intimidating at first. That's why we built Graphed. Instead of learning formulas and clicking through formatting panes, you can simply ask for what you need in plain English. For example, you could type "show me actual sales vs target sales by product, and highlight the ones that are below target" and get your analysis instantly, already visualized and ready to go.

Related Articles

How to Connect Facebook to Google Data Studio: The Complete Guide for 2026

Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.

Appsflyer vs Mixpanel​: Complete 2026 Comparison Guide

The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.