Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi all,
I would like to create a 3 columns table in Power Query giving the complete combinations from 3 dimensions. E.g.:
- Agent : Bob, Cathy, Bernie (actually this list could contain 100 names)
- Year : 2021, 2022, 2023
- Week : 1 to 52
The result should give something like :
| Year | Week | Agent |
| 2021 | 1 | Bob |
| 2021 | 1 | Cathy |
| 2021 | 1 | Bernie |
| 2021 | 2 | Bob |
| 2021 | 2 | Cathy |
| 2021 | 2 | Bernie |
| 2021 | 3 | Bob |
| 2021 | 3 | Cathy |
| 2021 | 3 | Bernie |
and so on, until 2023; 52; Bernie.
Any tips?
Thanks a lot !
Solved! Go to Solution.
This is called a Cartesian product or a cross-join.
You can use this method twice for 3 dimensions:
Cross join - Power Query | Microsoft Learn
Enjoy elegance of Power Query!
let
Agents = {"Bob","Cathy","Bernie"},
Years = {2021 .. 2023},
Weeks = {1 .. 52},
#"Cartesian Product" =
List.Accumulate(
{Agents,Weeks,Years},
{{}},
(s,c) => List.TransformMany(c, each s, (x,y) => {x} & (if Value.Is(y, type list) then y else {y}))
),
#"To Table" = Table.FromRows(#"Cartesian Product",{"Yr","Wk","Agt"})
in
#"To Table"Expertise = List.Accumulate( {Days as from Today}, {Skills and Knowledge}, (Current, Everyday) => Current & Day.LearnAndPractise(Everyday) ) |
This is called a Cartesian product or a cross-join.
You can use this method twice for 3 dimensions:
Cross join - Power Query | Microsoft Learn
So easy 🙂
Thanks a lot !
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
Check out the November 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 10 | |
| 6 | |
| 5 | |
| 4 | |
| 2 |