Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Count( if column value = string)

Hi,
Having trouble with DAX syntax in if statements for checking if a column's string value equals a certain value.

 

I want to do some calculations using different counts of strings, such as:

COUNT(IF(Table[Location] = "In Storage 1", 1, 0)) - COUNT(IF(Table[Location] = "Out Storage 1", 1, 0))

 

DateLocation
14/04/2019In Storage 1
14/04/2019In Storage 2
14/04/2019Out Storage 1
14/04/2019Out Storage 2
14/04/2019In Storage 1
14/04/2019In Storage 2
14/04/2019Out Storage 1
14/04/2019Out Storage 2
  • Anonymous add new measure with following expression

     

    MyBalanceCount = 
    CALCULATE( COUNTROWS( MyTable ), MyTable[Location] = "In Storage" ) -
    CALCULATE( COUNTROWS( MyTable ), MyTable[Location] = "Out Storage" )

5 Replies

  • Anonymous add new measure with following expression

     

    MyBalanceCount = 
    CALCULATE( COUNTROWS( MyTable ), MyTable[Location] = "In Storage" ) -
    CALCULATE( COUNTROWS( MyTable ), MyTable[Location] = "Out Storage" )
    • Hamza_Meknassi's avatar
      Hamza_Meknassi
      Regular Visitor

      can we have two calculate in the same DAX query ? in my case, i have a syntaxe error !

      del =
      CALCULATE (
      COUNTROWS(dashboard ), dashboard[code] = "RES"
      ) + CALCULATE (
      COUNTROWS(dashboard ), dashboard[code] = "DES"
      )

       

       

  • suhasakole's avatar
    suhasakole
    Frequent Visitor

    Hi Ben,

    Along with the above approach, you can try the following creating 2 calculated measure and then use those in creating a final measure. Hope this might help you.

    CntRowsInStorage = CALCULATETABLE(ROW("rows",COUNT(Table[Location])),FILTER(ALL(Table[Location]),SEARCH("In Storage",Table1[Text],1,0)))

    CntRowsOutStorage = CALCULATETABLE(ROW("rows",COUNT(Table[Location])),FILTER(ALL(Table[Location]),SEARCH("Out Storage",Table1[Text],1,0)))

    FinalCount = CntRowsInStorage - CntRowsOutStorage

  • Adamboer's avatar
    Adamboer
    Responsive Resident

    Hello,

    The syntax for checking if a column's string value equals a certain value in DAX is to use the "=" operator inside the IF statement. Here's the correct syntax for your calculation:

    COUNT(IF(Table[Location] = "In Storage 1", 1, BLANK())) - COUNT(IF(Table[Location] = "Out Storage 1", 1, BLANK()))

    Note that the BLANK() function should be used instead of 0 in the IF statement to avoid incorrect results. Also, if you want to include all rows that don't match the conditions, you can use the COUNTROWS function outside the IF statements, like this:

    COUNTROWS(Table) - COUNT(IF(Table[Location] = "In Storage 1", 1, BLANK())) - COUNT(IF(Table[Location] = "Out Storage 1", 1, BLANK()))

    This will give you the count of rows that don't match the conditions.

    I hope this helps! Let me know if you have any further questions.