Forum Discussion

WKN's avatar
WKN
Icon for Helper I rankHelper I
2 years ago
Solved

Return a value from another column based on conditions set by other columns

I need help with the followiing scenario:

In below example I would like to create column "Near Low Temp Timing" in the Data Table (Table View). This column returns the initial Test Time for every start of Eval ID until it sees "HT Start" condition in "High Temp Start". It will then update and return Test Time when indicated with "HT Start" in "High Temp Start".

 

Any suggestion how the measure can be written to meet this criteria?

 

  • Hi,

    I am not sure if I understood your question correctly, but please check the below picture and the attached pbix file.

    I tried to create a sample pbix file like below.

     

    It is for creating Calculated Column, not Calculated Measure.

     

     

    WINDOW function (DAX) - DAX | Microsoft Learn

     

    Near Low Temp Timing CC =
    VAR _condition =
        ADDCOLUMNS (
            Data,
            "@condition", IF ( Data[High Temp Start] = "HT Start", 1, 0 )
        )
    VAR _group =
        ADDCOLUMNS (
            _condition,
            "@group",
                SUMX (
                    WINDOW (
                        1,
                        ABS,
                        0,
                        REL,
                        _condition,
                        ORDERBY ( Data[Test Time], ASC, Data[Index], ASC ),
                        ,
                        PARTITIONBY ( Data[Eval ID] ),
                        MATCHBY ( Data[Index], Data[Eval ID], Data[Test Time] )
                    ),
                    [@condition]
                )
        )
    VAR _result =
        ADDCOLUMNS (
            _group,
            "@result",
                MINX (
                    FILTER (
                        _group,
                        Data[Eval ID] = EARLIER ( Data[Eval ID] )
                            && [@group] = EARLIER ( [@group] )
                    ),
                    Data[Test Time]
                )
        )
    RETURN
        MINX (
            FILTER (
                _result,
                Data[Eval ID] = EARLIER ( Data[Eval ID] )
                    && Data[Test Time] = EARLIER ( Data[Test Time] )
                    && Data[High Temp Start] = EARLIER ( Data[High Temp Start] )
            ),
            [@result]
        )
    

     

2 Replies

  • Hi,

    I am not sure if I understood your question correctly, but please check the below picture and the attached pbix file.

    I tried to create a sample pbix file like below.

     

    It is for creating Calculated Column, not Calculated Measure.

     

     

    WINDOW function (DAX) - DAX | Microsoft Learn

     

    Near Low Temp Timing CC =
    VAR _condition =
        ADDCOLUMNS (
            Data,
            "@condition", IF ( Data[High Temp Start] = "HT Start", 1, 0 )
        )
    VAR _group =
        ADDCOLUMNS (
            _condition,
            "@group",
                SUMX (
                    WINDOW (
                        1,
                        ABS,
                        0,
                        REL,
                        _condition,
                        ORDERBY ( Data[Test Time], ASC, Data[Index], ASC ),
                        ,
                        PARTITIONBY ( Data[Eval ID] ),
                        MATCHBY ( Data[Index], Data[Eval ID], Data[Test Time] )
                    ),
                    [@condition]
                )
        )
    VAR _result =
        ADDCOLUMNS (
            _group,
            "@result",
                MINX (
                    FILTER (
                        _group,
                        Data[Eval ID] = EARLIER ( Data[Eval ID] )
                            && [@group] = EARLIER ( [@group] )
                    ),
                    Data[Test Time]
                )
        )
    RETURN
        MINX (
            FILTER (
                _result,
                Data[Eval ID] = EARLIER ( Data[Eval ID] )
                    && Data[Test Time] = EARLIER ( Data[Test Time] )
                    && Data[High Temp Start] = EARLIER ( Data[High Temp Start] )
            ),
            [@result]
        )
    

     

  • Thank you for the solution. I have used the suggested calculated column to the larger dataset of this sample and it works!