Forum Discussion

karimkz's avatar
karimkz
Advocate I
9 years ago
Solved

DAX reference to current row value??

Hello!
I can't find a solution for this lilttle problem.
Here is the dataset, it has Units and Performance. I want to make a calculated column with a Maximum Performance for each distinct Unit. (hardcoded here below for example purposes)

Should be smth like this:
maximum = CALCULATE(MAX(table[performance]); table[unit] = ***current unit or what...???***))

Any help is appreciated!

  • Hi karimkz,

     

    if you are using calculated column:

     

    maximum = CALCULATE(MAX(table[performance]),filter(all(table),  table[unit] = earlier(table[unit])  ) ))

    (earlier/earliest will return current row in calculated column expression)

6 Replies

  • Hi karimkz,

     

    if you are using calculated column:

     

    maximum = CALCULATE(MAX(table[performance]),filter(all(table),  table[unit] = earlier(table[unit])  ) ))

    (earlier/earliest will return current row in calculated column expression)

    • AdamM's avatar
      AdamM
      Frequent Visitor

      What if its a measure? I want the average rate benchmark for any given bid to be calculated across all bids with that same location and job role. The approach of using EARLIER does not work within a measure.

      =CALCULATE(AVERAGEX('Bids','Bids'[Hourly Rate]), FILTER(ALL('Projects'), 'Projects'[Location] = 'Projects'[Location] && 'Projects'[Job Role] = 'Projects'[Job Role]))

       

       

       

      • Spurta's avatar
        Spurta
        Frequent Visitor

        Did you ever figure out how to incorporate this into a Measure? I'm struggling with something similar.

  • SUMX (
    FILTER (
    'NAV - Job Ledger Entry',
    'NAV - Job Ledger Entry'[Job_No] = EARLIER('NAV - Job Ledger Entry'[Job_No])
    && 'NAV - Job Ledger Entry'[AuxiliaryIndex1] <= EARLIER('NAV - Job Ledger Entry'[AuxiliaryIndex1])
    && LEFT ( 'NAV - Job Ledger Entry'[Job_Task_No], 1 ) =Left(EARLIER('NAV - Job Ledger Entry'[Job_Task_No],1)) && 'NAV - Job Ledger Entry'[Type] = "Usage"
    ),
    'NAV - Job Ledger Entry'[Quantity]
    )
     
    Hello All, 
     
    I've tried using the earlier function to try and calculate a running total but end up returning nothing on this. Only returns Blanks. This is trying to calculate the rolling total for each row in the table based on certain criteria (Job No., Left(Job Task No, 1) and AuxilaryIndex 1) any help would be appreciated on this if you can spot where i'm going wrong. 
     
    Regards
     
    Nate
  • garythomannCoGC's avatar
    garythomannCoGC
    Impactful Individual

     

     

    maximum = 
        CALCULATE ( 
            MAX ( table[performance] ),
            FILTER ( 
                ALL (table),  
                table[unit] = EARLIER ( table[unit] )  
            ) 
        )

     

     

    Extra bracket removed.  As sqlbi.com says "if its not formatted then its not dax" :}

    And thank you for the construct it helped to resolve an issue.