<?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 Mix% (Dynamic date filters, NaturalInnerjoin, Summarize) in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873428#M185766</link>
    <description>&lt;P&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;U&gt;&lt;STRONG&gt;Input Sample Data:&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Customer&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;SKU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Date&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Rank&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Quantity&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Jan-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;200&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;400&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Nov-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;45&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Mar-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;100&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;200&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;67&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Jan-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;214&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;412&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Mar-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;112&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;211&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;78&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S300&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;55&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;STRONG&gt;&lt;U&gt;Output Sample Data:&lt;BR /&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;Customer&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;SKU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;CY 2025&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;CY Mix %&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;300&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;82%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;67&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;18%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;323&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;100%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;BR /&gt;Explanantion of Output Table:&lt;BR /&gt;&lt;/U&gt;&lt;/STRONG&gt;1. Quantity is aggregated for Customer and SKU for current year and previous year (CY) vs (PY) using input table.&amp;nbsp;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;2. For every customer, only those SKUs are retained which are sold in both years (Naturalinnerjoin). Therefore, SKU S200 &amp;amp; S300 are not considered in output table as they are not present in both CY and PY.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;3. Calculate Mix% for current year, within in each customer by dividing SKU level quantity by Customer level total quantity.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;4. Rank column is according to date. The rank column from input table is used to filter time period dynamically.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;5. I am not able to achieve total at customer level after&amp;nbsp;Naturalinnerjoin in DAX.&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;U&gt;&lt;STRONG&gt;&lt;BR /&gt;DAX:&amp;nbsp;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;MnA =
VAR base_rank = SELECTEDVALUE(BaseCalendar[Rank])
VAR actual_rank = SELECTEDVALUE(ActualCalendar[Rank])
VAR timePeriod = SELECTEDVALUE(TimePeriod[SelectedPeriod])-1

// 1.
VAR tbl1 =  SUMMARIZE(  FILTER( CleanSales,
            CleanSales[rank] &amp;gt;= base_rank - timePeriod &amp;amp;&amp;amp; 
CleanSales[rank] &amp;lt;= base_rank ),
        All_CustomerIDs[CustomerNo], All_SKUCode[SKUCode],
        "QuantityB", SUM(CleanSales[Quantity]))
// 2.
VAR tbl2 =  SUMMARIZE(   FILTER( CleanSales,
            CleanSales[rank] &amp;gt;= actual_rank - timePeriod &amp;amp;&amp;amp; 
CleanSales[rank] &amp;lt;= actual_rank ),
        All_CustomerIDs[CustomerNo], All_SKUCode[SKUCode],
        "QuantityA", SUM(CleanSales[Quantity]))
// 3.
VAR FullJoinTable2 = NATURALINNERJOIN(tbl1,tbl2)
// 4.
VAR CustomerTotals = ADDCOLUMNS(
        SUMMARIZE(FullJoinTable2, All_CustomerIDs[CustomerNo]),
        "TotalBaseQuantity", CALCULATE(SUMX(FullJoinTable2, [QuantityB])),
        "TotalActualQuantity", CALCULATE(SUMX(FullJoinTable2, [QuantityA])))

// 5. Merge totals back
VAR FullWithTotals =  NATURALLEFTOUTERJOIN(FullJoinTable2, CustomerTotals)
// 6.
VAR MAMB = ADDCOLUMNS(
        FullWithTotals,
        "Mn_A", DIVIDE([QuantityA], [TotalActualQuantity], 0),
        "Mn_B", DIVIDE([QuantityB], [TotalBaseQuantity], 0))
// 7.
// Final calculation: Return the sum of Mn_B across all products in tbl1
RETURN  AVERAGEX(MAMB, [Mn_A])&lt;/LI-CODE&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;STRONG&gt;&lt;U&gt;Brief explanation of DAX - &lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;1. Data is filtered first time using Current time period: Dynamic filtering using current start date, previous start date and last-n-months slicers. I have used ranks to filter time periods below. Actual &amp;amp; Base calendars are not connected to sales table.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;2. Same data filtered using Base time period.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;3. Both of the datasets are inner joined at Customer x SKU level to find common combinations (Naturalinnerjoin).&amp;nbsp;All_CustomerIDs, All_SKUCode are connected to sales table.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;4. This table with common combinations is again summarized at customer level to find customer level total.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;5. Table from point 4 is joined back on table in point 3 (inner-joined).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;6. Calculate mix% by sku level qty/ customer level qty.&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT face="batang,apple gothic"&gt;7. Return mix% using averagex for each Customer and SKU&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;U&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;Issues in DAX:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;1. The calculation fails at point 4. i.e. not able to calculate customer level totals. Please suggest correct DAX.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;2. Is return method correct?&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;3. Can this be optimized? any better method to achieve this type of calculation?&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 12 Nov 2025 17:35:20 GMT</pubDate>
    <dc:creator>barkha</dc:creator>
    <dc:date>2025-11-12T17:35:20Z</dc:date>
    <item>
      <title>Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873428#M185766</link>
      <description>&lt;P&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;U&gt;&lt;STRONG&gt;Input Sample Data:&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Customer&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;SKU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Date&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Rank&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Quantity&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Jan-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;200&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;400&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Nov-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;3&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;45&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Mar-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;100&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;200&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;67&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Jan-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;1&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;214&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-24&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;2&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;412&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Mar-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;4&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;112&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;211&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;78&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;S300&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;Oct-25&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;5&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT size="1 2 3 4 5 6 7"&gt;55&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;STRONG&gt;&lt;U&gt;Output Sample Data:&lt;BR /&gt;&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;Customer&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;SKU&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;CY 2025&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;CY Mix %&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;300&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;82%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;A&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;S200&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;67&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;18%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;B&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;S100&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;323&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt;&lt;FONT face="batang,apple gothic" size="1 2 3 4 5 6 7"&gt;100%&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;STRONG&gt;&lt;U&gt;&lt;BR /&gt;Explanantion of Output Table:&lt;BR /&gt;&lt;/U&gt;&lt;/STRONG&gt;1. Quantity is aggregated for Customer and SKU for current year and previous year (CY) vs (PY) using input table.&amp;nbsp;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;2. For every customer, only those SKUs are retained which are sold in both years (Naturalinnerjoin). Therefore, SKU S200 &amp;amp; S300 are not considered in output table as they are not present in both CY and PY.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;3. Calculate Mix% for current year, within in each customer by dividing SKU level quantity by Customer level total quantity.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;4. Rank column is according to date. The rank column from input table is used to filter time period dynamically.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;5. I am not able to achieve total at customer level after&amp;nbsp;Naturalinnerjoin in DAX.&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;U&gt;&lt;STRONG&gt;&lt;BR /&gt;DAX:&amp;nbsp;&lt;/STRONG&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;MnA =
VAR base_rank = SELECTEDVALUE(BaseCalendar[Rank])
VAR actual_rank = SELECTEDVALUE(ActualCalendar[Rank])
VAR timePeriod = SELECTEDVALUE(TimePeriod[SelectedPeriod])-1

// 1.
VAR tbl1 =  SUMMARIZE(  FILTER( CleanSales,
            CleanSales[rank] &amp;gt;= base_rank - timePeriod &amp;amp;&amp;amp; 
CleanSales[rank] &amp;lt;= base_rank ),
        All_CustomerIDs[CustomerNo], All_SKUCode[SKUCode],
        "QuantityB", SUM(CleanSales[Quantity]))
// 2.
VAR tbl2 =  SUMMARIZE(   FILTER( CleanSales,
            CleanSales[rank] &amp;gt;= actual_rank - timePeriod &amp;amp;&amp;amp; 
CleanSales[rank] &amp;lt;= actual_rank ),
        All_CustomerIDs[CustomerNo], All_SKUCode[SKUCode],
        "QuantityA", SUM(CleanSales[Quantity]))
// 3.
VAR FullJoinTable2 = NATURALINNERJOIN(tbl1,tbl2)
// 4.
VAR CustomerTotals = ADDCOLUMNS(
        SUMMARIZE(FullJoinTable2, All_CustomerIDs[CustomerNo]),
        "TotalBaseQuantity", CALCULATE(SUMX(FullJoinTable2, [QuantityB])),
        "TotalActualQuantity", CALCULATE(SUMX(FullJoinTable2, [QuantityA])))

// 5. Merge totals back
VAR FullWithTotals =  NATURALLEFTOUTERJOIN(FullJoinTable2, CustomerTotals)
// 6.
VAR MAMB = ADDCOLUMNS(
        FullWithTotals,
        "Mn_A", DIVIDE([QuantityA], [TotalActualQuantity], 0),
        "Mn_B", DIVIDE([QuantityB], [TotalBaseQuantity], 0))
// 7.
// Final calculation: Return the sum of Mn_B across all products in tbl1
RETURN  AVERAGEX(MAMB, [Mn_A])&lt;/LI-CODE&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;STRONG&gt;&lt;U&gt;Brief explanation of DAX - &lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;1. Data is filtered first time using Current time period: Dynamic filtering using current start date, previous start date and last-n-months slicers. I have used ranks to filter time periods below. Actual &amp;amp; Base calendars are not connected to sales table.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;2. Same data filtered using Base time period.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;3. Both of the datasets are inner joined at Customer x SKU level to find common combinations (Naturalinnerjoin).&amp;nbsp;All_CustomerIDs, All_SKUCode are connected to sales table.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;4. This table with common combinations is again summarized at customer level to find customer level total.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;5. Table from point 4 is joined back on table in point 3 (inner-joined).&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic"&gt;6. Calculate mix% by sku level qty/ customer level qty.&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT face="batang,apple gothic"&gt;7. Return mix% using averagex for each Customer and SKU&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;&lt;U&gt;&lt;FONT color="#000000"&gt;&lt;STRONG&gt;Issues in DAX:&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;1. The calculation fails at point 4. i.e. not able to calculate customer level totals. Please suggest correct DAX.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;2. Is return method correct?&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic"&gt;3. Can this be optimized? any better method to achieve this type of calculation?&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Nov 2025 17:35:20 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873428#M185766</guid>
      <dc:creator>barkha</dc:creator>
      <dc:date>2025-11-12T17:35:20Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873452#M185767</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;Sorry, having trouble following, can you post sample data as text and expected output?&lt;BR /&gt;Not really enough information to go on, please first check if your issue is a common issue listed here: &lt;A href="https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882" target="_blank"&gt;https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p/1116882&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Also, please see this post regarding How to Get Your Question Answered Quickly: &lt;A href="https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490" target="_blank"&gt;https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;The most important parts are:&lt;BR /&gt;1. Sample data as text, use the table tool in the editing bar&lt;BR /&gt;2. Expected output from sample data&lt;BR /&gt;3. Explanation in words of how to get from 1. to 2.&lt;/P&gt;</description>
      <pubDate>Wed, 12 Nov 2025 16:26:35 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873452#M185767</guid>
      <dc:creator>Greg_Deckler</dc:creator>
      <dc:date>2025-11-12T16:26:35Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873489#M185768</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="313" data-lia-user-login="Greg_Deckler" class="lia-mention lia-mention-user"&gt;Greg_Deckler&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;Thanks for the response.&lt;BR /&gt;I have pasted a small sample input data and output.&amp;nbsp;Kindly let me know if the issue is not clear.&lt;BR /&gt;Looking forward to your response.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 12 Nov 2025 17:17:12 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4873489#M185768</guid>
      <dc:creator>barkha</dc:creator>
      <dc:date>2025-11-12T17:17:12Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4874328#M185791</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;try changing step 4 to below:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;VAR CustomerTotals = 
    ADDCOLUMNS(
        SUMMARIZE(FullJoinTable, All_CustomerIDs[CustomerNo]),
        "TotalBaseQuantity", 
            VAR CurrentCustomer = [CustomerNo]
            RETURN
                SUMX(
                    FILTER(FullJoinTable, [CustomerNo] = CurrentCustomer),
                    [QuantityB]
                ),
        "TotalActualQuantity", 
            VAR CurrentCustomer = [CustomerNo]
            RETURN
                SUMX(
                    FILTER(FullJoinTable, [CustomerNo] = CurrentCustomer),
                    [QuantityA]
                )
    )&lt;/LI-CODE&gt;&lt;P&gt;please try and let me know.&lt;/P&gt;&lt;P&gt;Also try summarizecolumns or groupby instead of summarize dax as it is usually recommended.&lt;/P&gt;&lt;P&gt;Please give kudos or mark it as solution once confirmed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Praful&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2025 11:50:31 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4874328#M185791</guid>
      <dc:creator>Praful_Potphode</dc:creator>
      <dc:date>2025-11-13T11:50:31Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4874443#M185794</link>
      <description>&lt;P&gt;Thanks for your response.&amp;nbsp;&lt;BR /&gt;The solution is not working. I have tried&amp;nbsp;&lt;SPAN&gt;summarizecolumns / groupby&amp;nbsp;&lt;/SPAN&gt;and other methods as well, not working.&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2025 13:50:52 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4874443#M185794</guid>
      <dc:creator>barkha</dc:creator>
      <dc:date>2025-11-13T13:50:52Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4874561#M185795</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;can you share the data model snapshot to understand it better.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Praful&lt;/P&gt;</description>
      <pubDate>Thu, 13 Nov 2025 14:54:21 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4874561#M185795</guid>
      <dc:creator>Praful_Potphode</dc:creator>
      <dc:date>2025-11-13T14:54:21Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4898475#M186385</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1261729" data-lia-user-login="Praful_Potphode" class="lia-mention lia-mention-user"&gt;Praful_Potphode&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;Please refer to the pbix below attatctched, and refer to the power query steps to get your desired output.&lt;BR /&gt;&lt;BR /&gt;Hope this helps.&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Dec 2025 12:20:22 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4898475#M186385</guid>
      <dc:creator>v-echaithra</dc:creator>
      <dc:date>2025-12-10T12:20:22Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4902881#M186465</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;We’d like to follow up regarding the recent concern. Kindly confirm whether the issue has been resolved, or if further assistance is still required. We are available to support you and are committed to helping you reach a resolution.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Best Regards,&lt;BR /&gt;Chaithra E.&lt;/P&gt;</description>
      <pubDate>Tue, 16 Dec 2025 07:55:05 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4902881#M186465</guid>
      <dc:creator>v-echaithra</dc:creator>
      <dc:date>2025-12-16T07:55:05Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4906916#M186528</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;May I ask if you have resolved this issue? Please let us know if you have any further issues, we are happy to help.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 22 Dec 2025 10:50:59 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4906916#M186528</guid>
      <dc:creator>v-echaithra</dc:creator>
      <dc:date>2025-12-22T10:50:59Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4907230#M186529</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest to utilize UDF's to easily store the tables in this measure as I guess same tables will be used in multiple measures.&amp;nbsp;&lt;BR /&gt;Your approach is %100 correct but I believe some steps require little more attention.&amp;nbsp;&lt;BR /&gt;I didn't have the chance to implement and test the following solution but I hope you can do from your end.&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;MnA =
VAR base_rank =
    SELECTEDVALUE ( BaseCalendar[Rank] )
VAR actual_rank =
    SELECTEDVALUE ( ActualCalendar[Rank] )
VAR timePeriod =
    SELECTEDVALUE ( TimePeriod[SelectedPeriod] ) - 1 
// 1.
VAR tbl1 =
    SUMMARIZE (
        FILTER (
            CleanSales,
            CleanSales[rank] &amp;gt;= base_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= base_rank
        ),
        All_CustomerIDs[CustomerNo],
        All_SKUCode[SKUCode],
        "QuantityB", SUM ( CleanSales[Quantity] )
    ) 
// 2.
VAR tbl2 =
    SUMMARIZE (
        FILTER (
            CleanSales,
            CleanSales[rank] &amp;gt;= actual_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= actual_rank
        ),
        All_CustomerIDs[CustomerNo],
        All_SKUCode[SKUCode],
        "QuantityA", SUM ( CleanSales[Quantity] )
    ) 
// 3.
VAR InnerJoinTable1 =
    NATURALINNERJOIN ( tbl1, tbl2 ) 
// 4.
VAR tbl3 =
    CALCULATETABLE (
        SUMMARIZE (
            FILTER (
                CleanSales,
                CleanSales[rank] &amp;gt;= base_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= base_rank
            ),
            All_CustomerIDs[CustomerNo],
            All_SKUCode[SKUCode],
            "QuantityB", SUM ( CleanSales[Quantity] )
        ),
        ALL ( All_SKUCode[SKUCode] )
    ) 
// 5.
VAR tbl4 =
    CALCULATETABLE (
        SUMMARIZE (
            FILTER (
                CleanSales,
                CleanSales[rank] &amp;gt;= actual_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= actual_rank
            ),
            All_CustomerIDs[CustomerNo],
            All_SKUCode[SKUCode],
            "QuantityA", SUM ( CleanSales[Quantity] )
        ),
        ALL ( All_SKUCode[SKUCode] )
    ) 
// 6.
VAR InnerJoinTable2 =
    NATURALINNERJOIN ( tbl3, tbl4 ) 
// 7.
VAR CustomerTotals =
    GROUPBY (
        InnerJoinTable2,
        All_CustomerIDs[CustomerNo],
        "TotalBaseQuantity", SUMX ( CURRENTGROUP (), [QuantityB] ),
        "TotalActualQuantity", SUMX ( CURRENTGROUP (), [QuantityA] )
    ) 
// 8. Merge totals back
VAR FullWithTotals =
    NATURALLEFTOUTERJOIN ( InnerJoinTable1, CustomerTotals ) // 
9.
VAR MAMB =
    ADDCOLUMNS (
        FullWithTotals,
        "Mn_A", DIVIDE ( [QuantityA], [TotalActualQuantity], 0 ),
        "Mn_B", DIVIDE ( [QuantityB], [TotalBaseQuantity], 0 )
    ) 
// 10.
// Final calculation: Return the sum of Mn_B across all products in tbl1
RETURN
    AVERAGEX ( MAMB, [Mn_A] )
&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 22 Dec 2025 20:19:42 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4907230#M186529</guid>
      <dc:creator>tamerj1</dc:creator>
      <dc:date>2025-12-22T20:19:42Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4907235#M186530</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm extremely sorry! Looks like I just marked my solution as acceptable solution by mistake and I don't know how to undo that! Maybe&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1250534" data-lia-user-login="v-echaithra" class="lia-mention lia-mention-user"&gt;v-echaithra&lt;/a&gt;&amp;nbsp;can help!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 22 Dec 2025 20:26:30 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4907235#M186530</guid>
      <dc:creator>tamerj1</dc:creator>
      <dc:date>2025-12-22T20:26:30Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4907459#M186536</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="317289" data-lia-user-login="tamerj1" class="lia-mention lia-mention-user"&gt;tamerj1&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P data-start="59" data-end="105"&gt;No worries, you can easily undo it.&lt;/P&gt;
&lt;P data-start="107" data-end="309"&gt;Please click on the three dots&lt;STRONG data-start="127" data-end="145"&gt; (⋯)&lt;/STRONG&gt; on the reply that was marked as the solution. You should see an option called &lt;STRONG data-start="224" data-end="245"&gt;“&lt;/STRONG&gt;Not the solution&lt;STRONG data-start="224" data-end="245"&gt;”&lt;/STRONG&gt;. Selecting that will unmark the reply as the accepted solution.&lt;/P&gt;
&lt;P data-start="311" data-end="327" data-is-last-node="" data-is-only-node=""&gt;Hope that helps!&lt;/P&gt;</description>
      <pubDate>Tue, 23 Dec 2025 10:17:31 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4907459#M186536</guid>
      <dc:creator>v-echaithra</dc:creator>
      <dc:date>2025-12-23T10:17:31Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4908148#M186550</link>
      <description>&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="891590" data-lia-user-login="barkha" class="lia-mention lia-mention-user"&gt;barkha&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;Ok, I had the chance to implement the solution in the attached sample file.&lt;/P&gt;
&lt;P&gt;&lt;img /&gt;&lt;/P&gt;
&lt;LI-CODE lang="javascript"&gt;QAQB = () =&amp;gt; 
VAR base_rank =
    SELECTEDVALUE ( BaseCalendar[Rank] )
VAR actual_rank =
    SELECTEDVALUE ( ActualCalendar[Rank] )
VAR timePeriod =
    SELECTEDVALUE ( TimePeriod[SelectedPeriod] ) - 1 
// 1.
VAR tbl1 =
    SUMMARIZE (
        FILTER (
            CleanSales,
            CleanSales[rank] &amp;gt;= base_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= base_rank
        ),
        All_CustomerIDs[CustomerNo],
        All_SKUCode[SKUCode],
        "QuantityB", SUM ( CleanSales[Quantity] )
    ) 
// 2.
VAR tbl2 =
    SUMMARIZE (
        FILTER (
            CleanSales,
            CleanSales[rank] &amp;gt;= actual_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= actual_rank
        ),
        All_CustomerIDs[CustomerNo],
        All_SKUCode[SKUCode],
        "QuantityA", SUM ( CleanSales[Quantity] )
    ) 
// 3.
VAR InnerJoinTable1 =
    NATURALINNERJOIN ( tbl1, tbl2 ) 
RETURN
    InnerJoinTable1&lt;/LI-CODE&gt;&lt;LI-CODE lang="javascript"&gt;MAMB = () =&amp;gt; 
VAR base_rank =
    SELECTEDVALUE ( BaseCalendar[Rank] )
VAR actual_rank =
    SELECTEDVALUE ( ActualCalendar[Rank] )
VAR timePeriod =
    SELECTEDVALUE ( TimePeriod[SelectedPeriod] ) - 1 
// 4.
VAR tbl3 =
    CALCULATETABLE (
        SUMMARIZE (
            FILTER (
                CleanSales,
                CleanSales[rank] &amp;gt;= base_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= base_rank
            ),
            All_CustomerIDs[CustomerNo],
            All_SKUCode[SKUCode],
            "QuantityB", SUM ( CleanSales[Quantity] )
        ),
        ALL ( All_SKUCode[SKUCode] )
    ) 
// 5.
VAR tbl4 =
    CALCULATETABLE (
        SUMMARIZE (
            FILTER (
                CleanSales,
                CleanSales[rank] &amp;gt;= actual_rank - timePeriod &amp;amp;&amp;amp; CleanSales[rank] &amp;lt;= actual_rank
            ),
            All_CustomerIDs[CustomerNo],
            All_SKUCode[SKUCode],
            "QuantityA", SUM ( CleanSales[Quantity] )
        ),
        ALL ( All_SKUCode[SKUCode] )
    ) 
// 6.
VAR InnerJoinTable2 =
    NATURALINNERJOIN ( tbl3, tbl4 ) 
// 7.
VAR CustomerTotals =
    GROUPBY (
        InnerJoinTable2,
        All_CustomerIDs[CustomerNo],
        "TotalBaseQuantity", SUMX ( CURRENTGROUP (), [QuantityB] ),
        "TotalActualQuantity", SUMX ( CURRENTGROUP (), [QuantityA] )
    ) 
// 8. Merge totals back
VAR FullWithTotals =
    NATURALLEFTOUTERJOIN ( QAQB(), CustomerTotals ) 
// 9.
VAR MAMB =
    ADDCOLUMNS (
        FullWithTotals,
        "Mn_A", DIVIDE ( [QuantityA], [TotalActualQuantity], 0 ),
        "Mn_B", DIVIDE ( [QuantityB], [TotalBaseQuantity], 0 )
    )
RETURN
    MAMB&lt;/LI-CODE&gt;&lt;LI-CODE lang="javascript"&gt;CY Quantity = SUMX ( QAQB(), [QuantityB])&lt;/LI-CODE&gt;&lt;LI-CODE lang="javascript"&gt;CY Mix = AVERAGEX ( MAMB(), [Mn_B] )&lt;/LI-CODE&gt;&lt;LI-CODE lang="javascript"&gt;PY Quantity = SUMX ( QAQB(), [QuantityA] )&lt;/LI-CODE&gt;&lt;LI-CODE lang="javascript"&gt;PY Mix = AVERAGEX ( MAMB(), [Mn_A] )&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Dec 2025 11:07:49 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4908148#M186550</guid>
      <dc:creator>tamerj1</dc:creator>
      <dc:date>2025-12-24T11:07:49Z</dc:date>
    </item>
    <item>
      <title>Re: Mix% (Dynamic date filters, NaturalInnerjoin, Summarize)</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4908507#M186556</link>
      <description>&lt;P&gt;You can calculate customer-level totals after the NATURALINNERJOIN using ADDCOLUMNS with SUMX(FILTER()) per customer, then merge back with the joined table. This ensures SKU-level Mix% divides correctly by the customer total. Using SUMMARIZECOLUMNS instead of SUMMARIZE can also simplify and optimize the calculation.&lt;/P&gt;&lt;P&gt;Try these solutions and let me know if you need further clarification&lt;/P&gt;&lt;P&gt;Regards,&lt;BR /&gt;&lt;A href="https://linktr.ee/RufydaRahma" target="_self"&gt;Rufyda Rahma | MIE&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Dec 2025 13:58:17 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Mix-Dynamic-date-filters-NaturalInnerjoin-Summarize/m-p/4908507#M186556</guid>
      <dc:creator>Rufyda</dc:creator>
      <dc:date>2025-12-25T13:58:17Z</dc:date>
    </item>
  </channel>
</rss>

