<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Creating a new table with a cartesian product column in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1891863#M40751</link>
    <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="153981" data-lia-user-login="vpatel55" class="lia-mention lia-mention-user"&gt;vpatel55&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try this calculated table. The SELECTCOLUMNS function is necessary in order to rename the Product column, since CROSSJOIN doesn't allow two columns with the same name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Cross Join = 
GENERATE (
    SUMMARIZE ( Data, Data[Transaction Id], Data[Customer] ),
    VAR vTransId = Data[Transaction Id]
    VAR vProduct1 =
        CALCULATETABLE ( VALUES ( Data[Product] ), Data[Transaction Id] = vTransId )
    VAR vProduct2 =
        SELECTCOLUMNS (
            CALCULATETABLE ( VALUES ( Data[Product] ), Data[Transaction Id] = vTransId ),
            "Product2", Data[Product]
        )
    RETURN
        CROSSJOIN ( vProduct1, vProduct2 )
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 09 Jun 2021 22:53:51 GMT</pubDate>
    <dc:creator>DataInsights</dc:creator>
    <dc:date>2021-06-09T22:53:51Z</dc:date>
    <item>
      <title>Creating a new table with a cartesian product column</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1891379#M40738</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to create a new table containing every combination of Product in within one transaction id. So if transaction 1 contained 3 different products, that would be 3 x 3 = 9 combinations. This needs to be done in DAX.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The input is this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Transaction Id&lt;/TD&gt;&lt;TD&gt;Customer&lt;/TD&gt;&lt;TD&gt;Product&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Lucy Jones&lt;/TD&gt;&lt;TD&gt;Melon&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Lucy Jones&lt;/TD&gt;&lt;TD&gt;Jackfruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Amy Sycamore&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Daniel Johnson&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;Jimmy Johnson&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The expected output is this, where Product 1 and Product 2 show every combination of product in that Transaction id.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Transaction Id&lt;/TD&gt;&lt;TD&gt;Customer&lt;/TD&gt;&lt;TD&gt;Product 1&lt;/TD&gt;&lt;TD&gt;Product 2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;John Smith&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Lucy Jones&lt;/TD&gt;&lt;TD&gt;Melon&lt;/TD&gt;&lt;TD&gt;Melon&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Lucy Jones&lt;/TD&gt;&lt;TD&gt;Jackfruit&lt;/TD&gt;&lt;TD&gt;Melon&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Lucy Jones&lt;/TD&gt;&lt;TD&gt;Melon&lt;/TD&gt;&lt;TD&gt;Jackfruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Lucy Jones&lt;/TD&gt;&lt;TD&gt;Jackfruit&lt;/TD&gt;&lt;TD&gt;Jackfruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Amy Sycamore&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;TD&gt;Grapefruit&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Daniel Johnson&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;TD&gt;Orange&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;Jimmy Johnson&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;TD&gt;Pineapple&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A link to the input file is here:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.dropbox.com/s/m4uffww780eoi71/Sample%20file.pbix?dl=0" target="_blank" rel="noopener"&gt;https://www.dropbox.com/s/m4uffww780eoi71/Sample%20file.pbix?dl=0&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A kudos for anyone with a solution. Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Wed, 09 Jun 2021 16:53:12 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1891379#M40738</guid>
      <dc:creator>vpatel55</dc:creator>
      <dc:date>2021-06-09T16:53:12Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a new table with a cartesian product column</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1891863#M40751</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="153981" data-lia-user-login="vpatel55" class="lia-mention lia-mention-user"&gt;vpatel55&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try this calculated table. The SELECTCOLUMNS function is necessary in order to rename the Product column, since CROSSJOIN doesn't allow two columns with the same name.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;Cross Join = 
GENERATE (
    SUMMARIZE ( Data, Data[Transaction Id], Data[Customer] ),
    VAR vTransId = Data[Transaction Id]
    VAR vProduct1 =
        CALCULATETABLE ( VALUES ( Data[Product] ), Data[Transaction Id] = vTransId )
    VAR vProduct2 =
        SELECTCOLUMNS (
            CALCULATETABLE ( VALUES ( Data[Product] ), Data[Transaction Id] = vTransId ),
            "Product2", Data[Product]
        )
    RETURN
        CROSSJOIN ( vProduct1, vProduct2 )
)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 09 Jun 2021 22:53:51 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1891863#M40751</guid>
      <dc:creator>DataInsights</dc:creator>
      <dc:date>2021-06-09T22:53:51Z</dc:date>
    </item>
    <item>
      <title>Re: Creating a new table with a cartesian product column</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1892370#M40763</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="207275" data-lia-user-login="DataInsights" class="lia-mention lia-mention-user"&gt;DataInsights&lt;/a&gt;&amp;nbsp;, that works perfectly! I didn't think to use GENERATE. This had me stumped, so huge kudos for helping with this.&lt;/P&gt;</description>
      <pubDate>Thu, 10 Jun 2021 04:51:27 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Creating-a-new-table-with-a-cartesian-product-column/m-p/1892370#M40763</guid>
      <dc:creator>vpatel55</dc:creator>
      <dc:date>2021-06-10T04:51:27Z</dc:date>
    </item>
  </channel>
</rss>

