2 Tricks to Create Unique Combinations From Multiple Columns in Power Query

There are times where you need an efficient way to produce all unique combinations of your data. Recently a customer of mine used a report to track how the sales were doing. Their situation is as follows. The company reports several metrics for their business units. And not only that. They also operate in several countries, each with their local currencies. Their last step is to convert the numbers to the reporting currency for consolidation.

The required numbers were represented in several different pivot tables. Some GETPIVOTDATA formulas did the job of getting the right numbers out of the pivots. The client did not want to use a pivot table to show the numbers. Instead it was desirable to pull down the formulas and use the result of that. To be able to do that, the spreadsheet needed all the unique combinations possible for the data. After all, only that would add up to the right total. And that’s where Power Query came to the rescue. In today’s post you learn 2 tricks to produce all possible item combinations from several columns.

You can find the video tutorial on the top of this page. If you would rather read the tutorial or need more instructions, then continue reading.

Load data to Power Query

This example uses the following data:

Create unique combinations in power query

In order, the tables names are CountriesCurrencies, BusinessUnits and Metrics. To start out with, get all data into Power Query by repeating the below process for each table:

  • select the table -> go to the data tab -> click From Table / Range
  • click close & load dropdown -> select close & load to… -> choose only create connection

Repeat the previous steps for all three tables. You should end up with below three queries.

Importer queries in Query Editor

As all your data is in Power Query, the next step is to find all combinations of the data. In SQL you would do a so called ‘Full Outer Join’. This results in a table containing all records from both tables, whether the join matches or not. I will show you two ways how to do this. The first method involves helper columns, and the second method pulls the data in straight away.

Produce All Unique Combinations – Using a Helper Column

To start with, in each query you need a column to match on.

Helper Join Column

Do the following:

  • go to the tab add column -> click Custom Column
  • name the column Join and fill in =1 as custom formula

Repeat for the other two queries.

Add join column to table

You end up with a column behind each query. For this example I start by select the Query CountriesCurrencies. To get the data of the other queries you can perform a merge.

Merge tables on join column
  • Go to the tab Home -> select Merge Queries
  • Merge the query CountriesCurrencies with BusinessUnits
  • Select the column Join as merge column for both queries
  • For the merge use join kind Full Outer (all rows from both) -> press OK

This will add a new column containing a table object. Perform these steps again, but this time merge table CountriesCurrencies with Metrics.

The result is two new added columns containing Table objects. The table objects contain the data we just merged. What’s now left is to reveal this data. For both column BusinessUnits and Metrics:

New table objects
  • Expand the two arrows in the column header -> deselect column Join
  • Deselect the checkbox saying ‘Use original column name as prefix’ -> click OK

The result of these steps is that all the combinations of data have appeared in the query. What’s left is:

  • Delete the column Join as we don’t need it anymore.
All combinations using a helper column

The end result is a table with all possible combinations of data. Yet there is an easier way to do this, taking less steps.

Produce All Unique Combinations – Using A Formula

Previous method to produce all possible combinations was my first approach. It’s very effective but does take a few steps to perform. Above all, it involves unnecessary helper columns. You can achieve the same using a formula. Let’s assume we have all our tables into Power Query, without the Join helper columns. To get all combinations using a formula do the following:

  • go to the tab add column -> click Custom Column
  • name the column MergeBusinessUnits
  • As custom column formula fill in =BusinessUnits -> press OK
Reference other query directly

This will add the below column:

Merge column

What this formula does is, it looks for a query called ‘BusinessUnits’ and returns all of its rows in a Table object. In other words, it performs a Full Outer Join with the BusinessUnit query, but without using a helper column.

Perform previous steps again, but this time fill in Column Name MergeMetrics and Formula =Metrics. For both new columns:

  • Expand the two arrows in the column headers of the new columns
  • Deselect the checkbox saying ‘Use original column name as prefix’. -> click OK
  • Change column types to Text for both newly added columns
Resulting Table Using Direct References

And again you end up with the same table, with 64 rows.

This example used 4 variables for CountriesCurrencies, Business Units and Metrics. As each table contained 4 variables, it should have 4 * 4 * 4 = 64 unique combinations. You may feel you can handle creating 64 combinations by hand. Yet imagine doing something similar when you replace the Business Units, by Brands. You may be working with over 100 brands. This would mean 100 * 4 * 4 = 1600 unique combinations! You better think twice before doing that by hand.

As always, it’s good to know different approaches to handle a situation. If you work with multiple files, you may want to check out this post on how to consolidate those in an easy way. Or perhaps you work with single columns that you’d like to turn into a table.

Lastly, if you know other ways to produce unique combinations in Power Query, I would love to read about them in the comments. Please share this post if you liked it!

About Rick de Groot

Rick is the founder and editor of BI Gorilla. He believes learning is one of the great pleasures in life and wants to share his knowledge to help you improve your skills.

Learn more about him here, connect with him on Twitter, Facebook and LinkedIn and subscribe to his YouTube Channel.

15 thoughts on “2 Tricks to Create Unique Combinations From Multiple Columns in Power Query”

  1. This has been so helpful for step 1 of a process that I am completing! I am wondering if you might know more about the last step I need to do. Here is an example of what I did when following your first step.
    3 columns, each with the same 7 names. i.e. 1,2,3,4,5,6,7. I got through and had the 343 different combinations, but since the data in my 3 columns is the same, some of them are duplicates. Unfortunately, Excel isn’t recognizing the fact that they are duplicates because the sequencing is different, i.e. 122 and 221.
    Do you know if there is an easy way to pick through and removes those “duplicates” rather than doing it manually?
    Thanks again, Rick. Extremely helpful!

    • Hi Erika,

      Interesting challenge. What you’re looking for can be reached by first transforming a row into a list. Then sort the list, and lastly remove the duplicates in the sorted list column. You can find an example below (copy this code in the advanced editor in Power Query). Hope that works!


      Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTICYmOlWB0IzxgsAuMZovCMwCLIKhE8EyA2hfNMUfSZQuRiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [A = _t, B = _t, C = _t]),
      #"Added Custom" = Table.AddColumn(Source, "RowAsRecord", each Record.ToList(_)),
      #"Added Custom1" = Table.AddColumn(#"Added Custom", "SortedList", each List.Sort([RowAsRecord])),
      #"Removed Duplicates" = Table.Distinct(#"Added Custom1", {"SortedList"}),
      #"Removed Columns" = Table.RemoveColumns(#"Removed Duplicates",{"RowAsRecord", "SortedList"})
      #"Removed Columns"

  2. Hi, How can I do this multiple times? I have multiple combinations to use the query always in pairs. Do I have to make the query for each combination?

  3. Hi Dimi,

    Thanks for sending the challenge. It’s a fun riddle to solve! I’m sure Power Query can help you all the way.
    I’ve made an example file on how to create the unique ThreeValueCombinations. You can download it from:


    Your request is possible using a custom function in Power Query. However, I’m still learning every day, especially in the area of custom functions. I haven’t been able to produce the full solution. I hope this file at least gets you going!


  4. Hi Rick,

    This video is great and I had no idea you could use excel in this way!

    I have a question that’s related to this topic that I’m hoping you can help me with:

    I’m trying to find all unique combinations in a dataset that has 7 columns. Unique combinations can be any two – seven values that never appear in the same row as each other.

    1, 2, 3, 4, 5, 6, 7,
    2, 3, 4, 5, 6, 7, 8,
    9, 1, 2, 3, 4, 5, 6,

    (each value is in it’s own cell).

    In the above example you can see that numbers 1 and 8 are never in the same row, so this is considered a unique two value combination. Numbers 1, 7 and 9 also never appear in the same row so this is a unique three value combination.

    If possible, I’d like a section that contains a drop down list so I can choose some of the values and it will then highlight the values that should be in the remaining options to make them unique. e.g. if I select number 9 as a value then on the next drop down if it highlights number 8 (as that would be unique), or I can choose number 6 (not unique) so then the third option would highlight number 7 (as this would make it unique).

    I’d appreciate any help you can offer.




Leave a comment