Forum Discussion
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))
| Date | Location |
| 14/04/2019 | In Storage 1 |
| 14/04/2019 | In Storage 2 |
| 14/04/2019 | Out Storage 1 |
| 14/04/2019 | Out Storage 2 |
| 14/04/2019 | In Storage 1 |
| 14/04/2019 | In Storage 2 |
| 14/04/2019 | Out Storage 1 |
| 14/04/2019 | Out 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
- parry2kSuper User
Anonymous add new measure with following expression
MyBalanceCount = CALCULATE( COUNTROWS( MyTable ), MyTable[Location] = "In Storage" ) - CALCULATE( COUNTROWS( MyTable ), MyTable[Location] = "Out Storage" )
- Hamza_MeknassiRegular 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"
)
- suhasakoleFrequent 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
- AdamboerResponsive 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.
- parry2kSuper User
Hamza_Meknassi you can do this too:
del = CALCULATE ( COUNTROWS(dashboard ), dashboard[code] IN { "RES", "DES" } )Subscribe to my youtube channel https://youtube.com/@PowerBIHowTo