Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
1 year ago
Solved

calculated column logic is not as expected.

LegendCategory =
SWITCH(
    TRUE(),
    SELECTEDVALUE(Reporter[Reporter Order]) = 0, 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone],
    SELECTEDVALUE(Reporter[Reporter Order]) = 1, 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone],
    SELECTEDVALUE(Reporter[Reporter Order]) = 2, 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone],
    SELECTEDVALUE(Reporter[Reporter Order]) = 3, 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone],
    "Please select a value"
)
I dragged report order into slicer. If i select 0,1,2 or 3. It's only  compute once and remain static.
  • Anonymous's avatar
    Anonymous
    1 year ago

    Hi Anonymous 

     

    Thank you very much Fowmy and FreemanZ for your prompt reply.

     

    For this problem, I recommend that you create a measure instead of calculating a column.

     

    The measures are dynamically changed based on the selection of the slicer, which is more consistent with usage habits. Also, I have made changes to your code as follows:

     

     

    LegendCategory = 
    IF(
        ISFILTERED('Reporter'[Reporter Order]),
        SWITCH(
            TRUE(),
            SELECTEDVALUE(Reporter[Reporter Order]) = 0, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone]),
            SELECTEDVALUE(Reporter[Reporter Order]) = 1, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone]),
            SELECTEDVALUE(Reporter[Reporter Order]) = 2, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone]),
            SELECTEDVALUE(Reporter[Reporter Order]) = 3, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone])
        ),
        "Please select a value"
    )

     

     

     

    Regards,

    Nono Chen

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

6 Replies

  • hi Anonymous ,

     

    calculated column/table is not supposed to response to the visual behaviors. 

    It is updated only if you refresh it manually.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Is there any alternate solution otherthan calculated measure.

  • Fowmy's avatar
    Fowmy
    Icon for Super User rankSuper User

    Anonymous 

    What's your expected behavour? If you select a value from Reporter Order from a slicer and you need to make a calculation on a column then you need to provide a calculation like Sum(' 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone]') not a column,  If you need to dynamically select a column based on selection, go for field paramerters: 

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous 

     

    Thank you very much Fowmy and FreemanZ for your prompt reply.

     

    For this problem, I recommend that you create a measure instead of calculating a column.

     

    The measures are dynamically changed based on the selection of the slicer, which is more consistent with usage habits. Also, I have made changes to your code as follows:

     

     

    LegendCategory = 
    IF(
        ISFILTERED('Reporter'[Reporter Order]),
        SWITCH(
            TRUE(),
            SELECTEDVALUE(Reporter[Reporter Order]) = 0, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone]),
            SELECTEDVALUE(Reporter[Reporter Order]) = 1, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone]),
            SELECTEDVALUE(Reporter[Reporter Order]) = 2, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone]),
            SELECTEDVALUE(Reporter[Reporter Order]) = 3, SELECTEDVALUE('DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone])
        ),
        "Please select a value"
    )

     

     

     

    Regards,

    Nono Chen

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

  • Hi Anonymous ,

     

    can you please help to understand the requirement and challenge you are facing with supporting input data and expect out data. 

     

    A simple table with input data and expect result would help.

     

    Thanks,

     

    Ankur

  • AntrikshSharma's avatar
    AntrikshSharma
    Icon for Community Champion rankCommunity Champion

    Anonymous You can convert this into a Measure and provided the visual where this measure is used doesn't have more than 1 row in the DMT_GTA table.

     

    LegendCategory =
    SWITCH (
        TRUE (),
        SELECTEDVALUE ( Reporter[Reporter Order] ) = 0, SELECTEDVALUE ( 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone] ),
        SELECTEDVALUE ( Reporter[Reporter Order] ) = 1, SELECTEDVALUE ( 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone] ),
        SELECTEDVALUE ( Reporter[Reporter Order] ) = 2, SELECTEDVALUE ( 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Import Zone] ),
        SELECTEDVALUE ( Reporter[Reporter Order] ) = 3, SELECTEDVALUE ( 'DMT_GTA W_DMT_GTA_V_GTA_FCST_TON'[Export Zone] ),
        "Please select a value"
    )