<?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 Filter CALCULATE SUM by 2 string columns in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Filter-CALCULATE-SUM-by-2-string-columns/m-p/2350647#M59642</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to create an inventory management system in Power BI to track materials moving through a unit. I need to be able to create measures for every single item that is available to be moved.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I will need to calculate the sum of the "quantity" that is being moved "IN", once I do that, I can do the same for the material moving "OUT", leaving me with a final figure for the current number of an item which is in the unit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to FILTER by the "Item" and then filter by "Material IN", which are both strings.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is what I've tried so far:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Calculate IN = CALCULATE(SUMX('Inventory', 'Inventory'[Quantity]),FILTER (
        ALL ( 'Inventory' ),
        SEARCH ( "Standard 1.00m Spigot", 'Inventory'[Item],) &amp;gt; 0
            &amp;amp;&amp;amp; SEARCH ( "In", 'Inventory'[material_InOut_Checkbox],) &amp;gt; 0
    )
)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;IN Standard 1.00m Spigot = CALCULATE(SUM('Inventory'[Quantity]), FILTER('Inventory', 'Inventory'[Item] = "Standard 1.00m Spigot"), FILTER('Inventory', 'Inventory'[material_InOut_Checkbox] = "In"))&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a sample data set for you to use:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Assuming each "Item" starts with 1000.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Material IN/OUT&lt;/TD&gt;&lt;TD&gt;Item&lt;/TD&gt;&lt;TD&gt;Quantity&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;In&lt;/TD&gt;&lt;TD&gt;Standard 1.00m Spigot&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Out&lt;/TD&gt;&lt;TD&gt;Standard 1.00m Spigot&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;In&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Standard 1.00m Spigot&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There will be &lt;STRONG&gt;998&lt;/STRONG&gt; Standard 1.00m Spigot's in the unit.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There will be over 50 items to record so I will need to filter by each one to get an exact figure for the item's count in the unit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 21 Feb 2022 09:31:29 GMT</pubDate>
    <dc:creator>alex9999</dc:creator>
    <dc:date>2022-02-21T09:31:29Z</dc:date>
    <item>
      <title>Filter CALCULATE SUM by 2 string columns</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Filter-CALCULATE-SUM-by-2-string-columns/m-p/2350647#M59642</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to create an inventory management system in Power BI to track materials moving through a unit. I need to be able to create measures for every single item that is available to be moved.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I will need to calculate the sum of the "quantity" that is being moved "IN", once I do that, I can do the same for the material moving "OUT", leaving me with a final figure for the current number of an item which is in the unit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to FILTER by the "Item" and then filter by "Material IN", which are both strings.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is what I've tried so far:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Calculate IN = CALCULATE(SUMX('Inventory', 'Inventory'[Quantity]),FILTER (
        ALL ( 'Inventory' ),
        SEARCH ( "Standard 1.00m Spigot", 'Inventory'[Item],) &amp;gt; 0
            &amp;amp;&amp;amp; SEARCH ( "In", 'Inventory'[material_InOut_Checkbox],) &amp;gt; 0
    )
)&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;IN Standard 1.00m Spigot = CALCULATE(SUM('Inventory'[Quantity]), FILTER('Inventory', 'Inventory'[Item] = "Standard 1.00m Spigot"), FILTER('Inventory', 'Inventory'[material_InOut_Checkbox] = "In"))&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a sample data set for you to use:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Assuming each "Item" starts with 1000.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Material IN/OUT&lt;/TD&gt;&lt;TD&gt;Item&lt;/TD&gt;&lt;TD&gt;Quantity&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;In&lt;/TD&gt;&lt;TD&gt;Standard 1.00m Spigot&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Out&lt;/TD&gt;&lt;TD&gt;Standard 1.00m Spigot&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;In&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Standard 1.00m Spigot&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There will be &lt;STRONG&gt;998&lt;/STRONG&gt; Standard 1.00m Spigot's in the unit.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There will be over 50 items to record so I will need to filter by each one to get an exact figure for the item's count in the unit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 21 Feb 2022 09:31:29 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Filter-CALCULATE-SUM-by-2-string-columns/m-p/2350647#M59642</guid>
      <dc:creator>alex9999</dc:creator>
      <dc:date>2022-02-21T09:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: Filter CALCULATE SUM by 2 string columns</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Filter-CALCULATE-SUM-by-2-string-columns/m-p/2353543#M59835</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="355732" data-lia-user-login="alex9999" class="lia-mention lia-mention-user"&gt;alex9999&lt;/a&gt;&amp;nbsp;, would you consider the following for your Inventory Management solution:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;DateTime&lt;/TD&gt;&lt;TD&gt;Action&lt;/TD&gt;&lt;TD&gt;Item Key&lt;/TD&gt;&lt;TD&gt;Quantity&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;01/01/2022 00:00&lt;/TD&gt;&lt;TD&gt;Stocktake&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15/01/2022 12:23&lt;/TD&gt;&lt;TD&gt;In&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16/01/2022 17:23&lt;/TD&gt;&lt;TD&gt;Out&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;-10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20/01/2022 11:23&lt;/TD&gt;&lt;TD&gt;In&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;01/02/2022 00:00&lt;/TD&gt;&lt;TD&gt;Stocktake&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15/02/2022 12:23&lt;/TD&gt;&lt;TD&gt;In&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16/02/2022 17:23&lt;/TD&gt;&lt;TD&gt;Out&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;-10&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;20/02/2022 11:23&lt;/TD&gt;&lt;TD&gt;In&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The features of this approach is that In and Out quantity movements are assigned + and - sign accordingly, so it make summing to find the current Inventory quantity much easier.&amp;nbsp; The second feature is the addition of the Stocktake action.&amp;nbsp; This allows you to reset your inventory without reporting as In and Out.&amp;nbsp; This could make it easier to track missing quantity or incorrect In/Out records.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note you should create a Item table.&amp;nbsp; This table will have the Item Key (primary) and Item details.&amp;nbsp; You can also add a calculated column with the current quantity using the following DAX expression (note this is the quantity at point of time the model is refreshed):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Current Item Quantity = //Calculated Column for Item table&lt;BR /&gt;VAR _LastStocktake = SUMMARIZE( FILTER(Inventory, Inventory[Action] = "Stocktake") , "Last Stocktake", MAX(Inventory[DateTime]))&lt;BR /&gt;VAR _StockMovementsSinceLastStockTake = CALCULATE( SUM(Inventory[Quantity]) , Inventory[DateTime] &amp;gt;= _LastStocktake )&lt;BR /&gt;RETURN &lt;BR /&gt;_StockMovementsSinceLastStockTake&lt;/PRE&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;From a measure perspective, the following allows you to show stock levels over time:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Daily&amp;nbsp;Stock&amp;nbsp;Level&amp;nbsp;=&lt;BR /&gt;//Measure&lt;BR /&gt;VAR&amp;nbsp;_Test&amp;nbsp;=&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ISFILTERED&amp;nbsp;(&amp;nbsp;'Item'[Item&amp;nbsp;Key]&amp;nbsp;)&lt;BR /&gt;VAR&amp;nbsp;_Date&amp;nbsp;=&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIN&amp;nbsp;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MIN&amp;nbsp;(&amp;nbsp;'Calendar'[Date]&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TODAY&amp;nbsp;()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;BR /&gt;VAR&amp;nbsp;_LastStocktake&amp;nbsp;=&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUMMARIZE&amp;nbsp;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILTER&amp;nbsp;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inventory,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inventory[DateTime]&amp;nbsp;&amp;lt;=&amp;nbsp;_Date&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;Inventory[Action]&amp;nbsp;=&amp;nbsp;"Stocktake"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"LastStockTake",&amp;nbsp;MAX&amp;nbsp;(&amp;nbsp;Inventory[DateTime]&amp;nbsp;)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;BR /&gt;RETURN&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IF&amp;nbsp;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;_Test,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CALCULATE&amp;nbsp;(&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUM&amp;nbsp;(&amp;nbsp;Inventory[Quantity]&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inventory[DateTime]&amp;nbsp;&amp;gt;=&amp;nbsp;_LastStocktake,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inventory[DateTime]&amp;nbsp;&amp;lt;=&amp;nbsp;_Date&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"No&amp;nbsp;Result"&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&lt;/PRE&gt;&lt;P&gt;&lt;SPAN class=""&gt;Note the Isfilter stops the measure from calculating when the item is not filtered&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 22 Feb 2022 13:47:17 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/Filter-CALCULATE-SUM-by-2-string-columns/m-p/2353543#M59835</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2022-02-22T13:47:17Z</dc:date>
    </item>
  </channel>
</rss>

