<?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: VAR and SWITCH Output issues in DAX Commands and Tips</title>
    <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156250#M187828</link>
    <description>&lt;P&gt;&lt;SPAN class=""&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1313106" data-lia-user-login="Help_me" class="lia-mention lia-mention-user"&gt;Help_me&lt;/a&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;The logic inside your &lt;/SPAN&gt;SWITCH&lt;SPAN class=""&gt; statement is actually perfectly structured.&amp;nbsp;The reason your code is failing and skipping down to the individual mappings is due to a hidden DAX mechanic inside your HasA and HasB variables called &lt;STRONG&gt;Context Transition.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;&lt;SPAN&gt;Because you are writing a Calculated Column, DAX evaluates the formula row by row (a Row Context).&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;Whenever you use the CALCULATE function inside a Row Context, DAX performs a "context transition," which automatically converts the current row into a filter.&amp;nbsp;This means CALCULATE silently applies a filter for &lt;I&gt;every single column&lt;/I&gt; in that specific row. If the current row has an action of "B", DAX restricts the table to that specific row and &lt;I&gt;then&lt;/I&gt; tries to apply your snapshot[action] = "A" filter. Because a row cannot be both "A" and "B" at the same time, COUNTROWS returns 0, meaning HasA evaluates to FALSE.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;Try out this DAX&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;New Action = 
VAR CurrentProject = snapshot[project_Num]
VAR CurrentDate = snapshot[date]

VAR HasA =
    CALCULATE(
        COUNTROWS(snapshot),
        ALL(snapshot), -- Overrides context transition to scan the whole table
        snapshot[project_Num] = CurrentProject,
        snapshot[date] = CurrentDate,
        snapshot[action] = "A"
    ) &amp;gt; 0

VAR HasB =
    CALCULATE(
        COUNTROWS(snapshot),
        ALL(snapshot), -- Overrides context transition to scan the whole table
        snapshot[project_Num] = CurrentProject,
        snapshot[date] = CurrentDate,
        snapshot[action] = "B"
    ) &amp;gt; 0

RETURN
    SWITCH(
        TRUE(),
        
        -- If both A and B exist on same date for the same project
        snapshot[action] IN {"A","B"} &amp;amp;&amp;amp; HasA &amp;amp;&amp;amp; HasB, "Cheese/Crackers",
        
        -- Individual mappings
        snapshot[action] = "A", "Cheese",
        snapshot[action] = "B", "Crackers",
        snapshot[action] = "X", "Water",
        snapshot[action] = "Y", "Cookie",
        
        BLANK()
    )&lt;/PRE&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;If this solves your problem, please mark this as solved and give a kudos.&lt;BR /&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="273" data-lia-user-login="me" class="lia-mention lia-mention-user"&gt;me&lt;/a&gt;so that i don't lose this thread.&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 23 Apr 2026 06:25:29 GMT</pubDate>
    <dc:creator>mizan2390</dc:creator>
    <dc:date>2026-04-23T06:25:29Z</dc:date>
    <item>
      <title>VAR and SWITCH Output issues</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156058#M187820</link>
      <description>&lt;P&gt;Hello All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a table with called &lt;U&gt;snaphot&lt;/U&gt; with the columns: &lt;STRONG&gt;date &lt;/STRONG&gt;(date type), &lt;STRONG&gt;action&lt;/STRONG&gt; (text values that can be A, B, X, Y), &lt;STRONG&gt;project_Num &lt;/STRONG&gt;(text values such as H00789).&lt;/P&gt;&lt;P&gt;All of these values can repeat. I want to write DAX statement that reclassifies the&amp;nbsp;&lt;STRONG&gt;action&lt;/STRONG&gt; values as&lt;/P&gt;&lt;P&gt;A -&amp;gt; Cheese&lt;BR /&gt;B -&amp;gt; Crackers&lt;BR /&gt;X -&amp;gt; Water&lt;BR /&gt;Y -&amp;gt; Cookie&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#FF6600"&gt;BUT&lt;/FONT&gt;, if the &lt;STRONG&gt;date&lt;/STRONG&gt; and the &lt;STRONG&gt;project_num&lt;/STRONG&gt; are the same for A and B -&amp;gt; Cheese/Crackers&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have written the DAX statement below, but the output rewrites the Cheese/Crackers with conditions in lines 1 &amp;amp; 2. Not sure how to take into account for this.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;New Action =&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;VAR CurrentProject = snapshot[project_Num]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;VAR CurrentDate = snapshot[date]&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;VAR HasA =&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALCULATE(&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COUNTROWS(snapshot),&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[project_Num] = CurrentProject,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[date] = CurrentDate,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "A"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;gt; 0&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;VAR HasB =&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALCULATE(&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COUNTROWS(snapshot),&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[project_Num] = CurrentProject,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[date] = CurrentDate,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "B"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;gt; 0&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;RETURN&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;SWITCH(&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE(),&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- If both A and B exist on same date&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] IN {"A","B"} &amp;amp;&amp;amp; HasA &amp;amp;&amp;amp; HasB, "Cheese/Crackers",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Individual mappings&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "A", "Cheese",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "B", "Crackers",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "X", "Water",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;snapshot[action] = "Y", "Cookie",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLANK()&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;)&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 15:57:07 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156058#M187820</guid>
      <dc:creator>Help_me</dc:creator>
      <dc:date>2026-04-22T15:57:07Z</dc:date>
    </item>
    <item>
      <title>Re: VAR and SWITCH Output issues</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156079#M187821</link>
      <description>&lt;P&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1313106" data-lia-user-login="Help_me" class="lia-mention lia-mention-user"&gt;Help_me&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Issue is context transition inside CALCULATE. HasA and HasB are not evaluating within current row context so they can override intended condition.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you try using&amp;nbsp;ALLEXCEPT to fix filter context&amp;nbsp;so the check is done only for the same project_Num and date.&lt;/P&gt;&lt;P&gt;New Action =&lt;/P&gt;&lt;P&gt;VAR HasA =CALCULATE(COUNTROWS(snapshot),ALLEXCEPT(snapshot, snapshot[project_Num], snapshot[date]),snapshot[action] = "A") &amp;gt; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;VAR HasB = CALCULATE(COUNTROWS(snapshot), ALLEXCEPT(snapshot, snapshot[project_Num], snapshot[date]),snapshot[action] = "B") &amp;gt; 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RETURN&lt;/P&gt;&lt;P&gt;SWITCH(TRUE(),snapshot[action] IN {"A","B"} &amp;amp;&amp;amp; HasA &amp;amp;&amp;amp; HasB, "Cheese/Crackers",snapshot[action] = "A", "Cheese",snapshot[action] = "B", "Crackers",snapshot[action] = "X", "Water",snapshot[action] = "Y", "Cookie", BLANK())&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 17:32:32 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156079#M187821</guid>
      <dc:creator>krishnakanth240</dc:creator>
      <dc:date>2026-04-22T17:32:32Z</dc:date>
    </item>
    <item>
      <title>Re: VAR and SWITCH Output issues</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156080#M187822</link>
      <description>&lt;P&gt;Hi&amp;nbsp;, when you use CALCULATE(), DAX performs a context transition and automatically applies the filter from the current row.&lt;BR /&gt;When you write:&lt;BR /&gt;DAXsnapshot[project_Num] = CurrentProject,snapshot[date] = CurrentDate,&lt;/P&gt;
&lt;P&gt;snapshot[action] = "A"&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;Power BI is adding filters on top of the current row, including the action value of that same row.&lt;BR /&gt;For example, if the current row is "A", the HasB calculation is trying to check:&lt;/P&gt;
&lt;P&gt;there is a row where&lt;BR /&gt;action = "A" (from the current row)&lt;BR /&gt;AND action = "B"&lt;/P&gt;
&lt;P&gt;This is not possible, so it always returns FALSE.&lt;BR /&gt;As a result, the SWITCH applies the individual rules and replaces the expected "Cheese/Crackers" result.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Try this:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;!-- ScriptorStartFragment --&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;New Action =&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;VAR HasA =&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALCULATE(&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COUNTROWS(snapshot),&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALLEXCEPT(snapshot, snapshot[project_Num], snapshot[date]),&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "A"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;gt; 0&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;VAR HasB =&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALCULATE(&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COUNTROWS(snapshot),&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALLEXCEPT(snapshot, snapshot[project_Num], snapshot[date]),&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "B"&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;gt; 0&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;RETURN&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;SWITCH(&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TRUE(),&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] IN {"A","B"} &amp;amp;&amp;amp; HasA &amp;amp;&amp;amp; HasB, "Cheese/Crackers",&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "A", "Cheese",&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "B", "Crackers",&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "X", "Water",&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "Y", "Cookie",&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BLANK()&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN&gt;)&lt;!-- ScriptorEndFragment --&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;P&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1313106" data-lia-user-login="Help_me" class="lia-mention lia-mention-user"&gt;Help_me&lt;/a&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 17:41:54 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156080#M187822</guid>
      <dc:creator>Zanqueta</dc:creator>
      <dc:date>2026-04-22T17:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: VAR and SWITCH Output issues</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156250#M187828</link>
      <description>&lt;P&gt;&lt;SPAN class=""&gt;Hi &lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1313106" data-lia-user-login="Help_me" class="lia-mention lia-mention-user"&gt;Help_me&lt;/a&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;The logic inside your &lt;/SPAN&gt;SWITCH&lt;SPAN class=""&gt; statement is actually perfectly structured.&amp;nbsp;The reason your code is failing and skipping down to the individual mappings is due to a hidden DAX mechanic inside your HasA and HasB variables called &lt;STRONG&gt;Context Transition.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;STRONG&gt;&lt;SPAN&gt;Because you are writing a Calculated Column, DAX evaluates the formula row by row (a Row Context).&amp;nbsp;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN&gt;Whenever you use the CALCULATE function inside a Row Context, DAX performs a "context transition," which automatically converts the current row into a filter.&amp;nbsp;This means CALCULATE silently applies a filter for &lt;I&gt;every single column&lt;/I&gt; in that specific row. If the current row has an action of "B", DAX restricts the table to that specific row and &lt;I&gt;then&lt;/I&gt; tries to apply your snapshot[action] = "A" filter. Because a row cannot be both "A" and "B" at the same time, COUNTROWS returns 0, meaning HasA evaluates to FALSE.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;Try out this DAX&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;New Action = 
VAR CurrentProject = snapshot[project_Num]
VAR CurrentDate = snapshot[date]

VAR HasA =
    CALCULATE(
        COUNTROWS(snapshot),
        ALL(snapshot), -- Overrides context transition to scan the whole table
        snapshot[project_Num] = CurrentProject,
        snapshot[date] = CurrentDate,
        snapshot[action] = "A"
    ) &amp;gt; 0

VAR HasB =
    CALCULATE(
        COUNTROWS(snapshot),
        ALL(snapshot), -- Overrides context transition to scan the whole table
        snapshot[project_Num] = CurrentProject,
        snapshot[date] = CurrentDate,
        snapshot[action] = "B"
    ) &amp;gt; 0

RETURN
    SWITCH(
        TRUE(),
        
        -- If both A and B exist on same date for the same project
        snapshot[action] IN {"A","B"} &amp;amp;&amp;amp; HasA &amp;amp;&amp;amp; HasB, "Cheese/Crackers",
        
        -- Individual mappings
        snapshot[action] = "A", "Cheese",
        snapshot[action] = "B", "Crackers",
        snapshot[action] = "X", "Water",
        snapshot[action] = "Y", "Cookie",
        
        BLANK()
    )&lt;/PRE&gt;&lt;P&gt;&lt;img /&gt;&lt;/P&gt;&lt;P&gt;If this solves your problem, please mark this as solved and give a kudos.&lt;BR /&gt;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="273" data-lia-user-login="me" class="lia-mention lia-mention-user"&gt;me&lt;/a&gt;so that i don't lose this thread.&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2026 06:25:29 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156250#M187828</guid>
      <dc:creator>mizan2390</dc:creator>
      <dc:date>2026-04-23T06:25:29Z</dc:date>
    </item>
    <item>
      <title>Re: VAR and SWITCH Output issues</title>
      <link>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156895#M187833</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="javascript:void(0)" data-lia-user-mentions="" data-lia-user-uid="1313106" data-lia-user-login="Help_me" class="lia-mention lia-mention-user"&gt;Help_me&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;you need to remove the filters injected by CALCULATE in these variables&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;VAR HasA =&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALCULATE(&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COUNTROWS(snapshot),&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[project_Num] = CurrentProject,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[date] = CurrentDate,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "A",&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;REMOVEFILTERS ( snapshot )&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;gt; 0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;VAR HasB =&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALCULATE(&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; COUNTROWS(snapshot),&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[project_Num] = CurrentProject,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[date] = CurrentDate,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapshot[action] = "B",&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;REMOVEFILTERS ( snapshot )&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ) &amp;gt; 0&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;rest of the code seems ok to me&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If this helped, please consider giving kudos and mark as a solution&lt;/P&gt;
&lt;P&gt;&lt;FONT face="batang,apple gothic" color="#0000FF"&gt;&lt;STRONG&gt;@me in replies or I'll lose your thread&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Want to check your DAX skills? &lt;A href="https://www.linkedin.com/company/kubisco/" target="_blank"&gt;Answer my biweekly DAX challenges on the kubisco Linkedin page&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Consider voting &lt;A href="https://community.fabric.microsoft.com/t5/Fabric-Ideas/Power-BI-Filter-Pane-as-an-icon-on-the-right-side-bar-in-on/idi-p/4728588" target="_blank"&gt;this Power BI idea&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Francesco Bergamaschi&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;MBA, M.Eng, M.Econ, Professor of BI&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2026 15:50:36 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/DAX-Commands-and-Tips/VAR-and-SWITCH-Output-issues/m-p/5156895#M187833</guid>
      <dc:creator>FBergamaschi</dc:creator>
      <dc:date>2026-04-23T15:50:36Z</dc:date>
    </item>
  </channel>
</rss>

