Forum Discussion

SamGibbs1's avatar
SamGibbs1
Frequent Visitor
7 years ago
Solved

Filtering lookup

Hi,

 

I am trying to look up values using DAX, but only where a text entry is = to something. I have the look up element working:

 

RTSG_Costs = LOOKUPVALUE(RTSGMatrix[RTSGAmount],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]),RTSGMatrix[AcademicYear],StudentYearsActive[AcademicYear])*StudentYearsActive[MonthDecimal]

 

If I was working in excel I would add something like:

IF(RTSGMatrix[annualised]="Annual", FORMULA AS ABOVE, 0)

so that only look ups from entries that have 'Annual' against them are pulled through, with the rest returning a 0 value.

 

  • Anonymous's avatar
    Anonymous
    7 years ago

    SamGibbs1,

    Firstly, please ensure that you use "New Column" option in Power BI Desktop to create calculated columns.


    Secondly, please split the above DAX formula into multiple formulas to better troubleshoot the issue.

    Col2=LOOKUPVALUE(RTSGMatrix[RTSGAmount],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]),RTSGMatrix[AcademicYear],StudentYearsActive[AcademicYear])*StudentYearsActive[MonthDecimal]
    Col1=LOOKUPVALUE(RTSGMatrix[RTSGPaidLump_or_Annual],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]))
    LastColumn = IF(TableName[Col1]="Annual",TableName[Col2],0)


    If you still get errors, please share sample data of your table and post expected result here following the guide in this thread:https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490.

    Regards,
    Lydia

2 Replies

  • SamGibbs1's avatar
    SamGibbs1
    Frequent Visitor

    Hi,

     

    To expand a bit further I have tried this:

    RTSG_Costs = If(LOOKUPVALUE(RTSGMatrix[RTSGPaidLump_or_Annual],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]))="Annual",LOOKUPVALUE(RTSGMatrix[RTSGAmount],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]),RTSGMatrix[AcademicYear],StudentYearsActive[AcademicYear])*StudentYearsActive[MonthDecimal],0)

     

    but it returns an error "A table of multiple values was supplied where a single value was expected". I am guessing this is due to the IF statement returning multiple records to check?

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      SamGibbs1,

      Firstly, please ensure that you use "New Column" option in Power BI Desktop to create calculated columns.


      Secondly, please split the above DAX formula into multiple formulas to better troubleshoot the issue.

      Col2=LOOKUPVALUE(RTSGMatrix[RTSGAmount],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]),RTSGMatrix[AcademicYear],StudentYearsActive[AcademicYear])*StudentYearsActive[MonthDecimal]
      Col1=LOOKUPVALUE(RTSGMatrix[RTSGPaidLump_or_Annual],RTSGMatrix[Award],LOOKUPVALUE(StudentDetails[Award],StudentDetails[SITS_StudentNumber],StudentYearsActive[SITS_StudentNumber]))
      LastColumn = IF(TableName[Col1]="Annual",TableName[Col2],0)


      If you still get errors, please share sample data of your table and post expected result here following the guide in this thread:https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490.

      Regards,
      Lydia