Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

The True/False expression does not specify a column. Each True/False expressions used as a table

I have issue with my dax expression with this error message
"The True/False expression does not specify a column. Each True/False expressions used as a table filter express must refer to exactly one column". The Dax code is 

 

Sales with 11 months = 
var mindate = MIN(Date[Date])
var maxdate = MAX(Date[Date])
var _sum = CALCULATE( SUM ( Sales[Amount]), USERELATIONSHIP (Date[Date], Sales[Date]))
RETURN
CALCULATE( _sum, FILTER( Sales[Type] IN {"Online", "Shop"}), EDATE(mindate, -11), maxdate)

 

How can I fix the dax above without error message

 

  • Okay, so the issue is with your filter in your CALCULATE expression:

     

    FILTER( Sales[Type] IN {"Online", "Shop"}), EDATE(mindate, -11), maxdate)

     

     

    The syntax should be FILTER(Table, Filter Expression) so I think your first one should be

    FILTER('Sales', [Type] IN {"Online", "Shop"})
     
    You've then got two more filters with no expression so it can't evaluate them.
     
    EDATE(mindate,-11)    < this is just going to return a date, it's not evaluating to a true or false.
    maxdate                      < again this is just going to return your max date, not evaluate anything.
     
    I can't work out what you are trying to do but should EDATE(mindate,-11) = maxdate ? i.e. is that a rogue comma that should be something else? 
     

3 Replies

  • Okay, so the issue is with your filter in your CALCULATE expression:

     

    FILTER( Sales[Type] IN {"Online", "Shop"}), EDATE(mindate, -11), maxdate)

     

     

    The syntax should be FILTER(Table, Filter Expression) so I think your first one should be

    FILTER('Sales', [Type] IN {"Online", "Shop"})
     
    You've then got two more filters with no expression so it can't evaluate them.
     
    EDATE(mindate,-11)    < this is just going to return a date, it's not evaluating to a true or false.
    maxdate                      < again this is just going to return your max date, not evaluate anything.
     
    I can't work out what you are trying to do but should EDATE(mindate,-11) = maxdate ? i.e. is that a rogue comma that should be something else? 
     
  • Your maxdate variable is incorrectly named as mixdate