Forum Discussion

AbinashBehera's avatar
AbinashBehera
Frequent Visitor
3 years ago
Solved

Creating a calculated Measure column based on If else condition of string column from another table.

Hello All,

I am trying to create a calculated column based on below formula, Please suggest how we can write same functionality in DAX for Power BI Reports.

 

Below are my tables joined.

Fact_Table

Dim_Table

 

Calculated Column Logic should be :

case when  Dim_Table.col1 = "Base" then Fact_Table.Measure1 

        When Dim_Table.col1 = "USD" then Fact_Table.Measure2

...

end.

 

 

 

 

Thanks in Advance.

Abinash

 

  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi AbinashBehera ,

     

    Calculated column and measure are different, you could learn more about it from

    Calculated Columns and Measures in DAX - SQLBI

    Do you want to return a measure in a calculated column? Here is a similar post that you can refer to:

    Solved: Using a Measure in a Calculated Column - Microsoft Power BI Community

     

    Measures are calculated on demand based on the report selections, not the refreshed the data. So your measure in the column is calculated on demand, in the case of the column it is at data refresh. 

    In other words, measures are dynamic, while calculated columns are static.

     

    Also, I helped you move your posts to the Desktop forum, which you posted in the Power Query forum, the M language used in Power Query.

     

    Best Regards,

    Stephen Tao

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi AbinashBehera ,

     

    Calculated column and measure are different, you could learn more about it from

    Calculated Columns and Measures in DAX - SQLBI

    Do you want to return a measure in a calculated column? Here is a similar post that you can refer to:

    Solved: Using a Measure in a Calculated Column - Microsoft Power BI Community

     

    Measures are calculated on demand based on the report selections, not the refreshed the data. So your measure in the column is calculated on demand, in the case of the column it is at data refresh. 

    In other words, measures are dynamic, while calculated columns are static.

     

    Also, I helped you move your posts to the Desktop forum, which you posted in the Power Query forum, the M language used in Power Query.

     

    Best Regards,

    Stephen Tao

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • AbinashBehera's avatar
      AbinashBehera
      Frequent Visitor

      Thank you Anonymous 

      So to clear the confusion, I wanted a measure out of a conditional statement.

      The problem is, my conditional columns are in Dimension table and the measures are in fact table, so can we write a meausre in this scenario.

      And the conditional value needs to be selected by user through slicer. e.g. single selection of Base or USD. 

       

      Measure Logic: 

      case when  Dim_Table.col1 = "Base" then Fact_Table.Measure1 

              when Dim_Table.col1 = "USD" then Fact_Table.Measure2

      end

       

      Thanks,

      Abinash

  • Hey,

    You can use a combination of Related, Nested IF (or switch)

    Assuming the column is being created in fact table and Measure1 is a column
    IF (RELATED ( Dim_Table[col1] )="Base",Fact_Table[Measure1],IF (------------repeat------))

    You can convert this nested IF to switch :

    https://dax.guide/switch/

    • AbinashBehera's avatar
      AbinashBehera
      Frequent Visitor

      Thank you NandanHegde 

      I tried, but getting below error: 

       

      "The column 'Dim_Table.Col1' either doesn't exist or doesn't have a relationship to any table available in the current context."