Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi Team,
I want help in fixing the DAX code, I have table called "KPI-color" and below is the measure which I have used. Let me know if any one from this group can able to fix this. Thanks
Coummincation =
VAR countrow = if(CALCULATE(COUNTROWS('KPI - color'),'KPI - color'[Tag] >0),0,1)
VAR TOPROWS1 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( TOPN ( 1, 'KPI - color' , [Tag], DESC) )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR TOPROWS2 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ('KPI - color')
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR TOPROWS = if(countrow,toprows1,TOPROWS2)
VAR filteredRowsTable =
CALCULATETABLE (
'KPI - color',
TOPROWS,
FILTER (
'KPI - color',
MAX('KPI - color'[Tag])),'KPI - color'[Status] ="" || 'KPI - color'[Status] = "In Progress")
RETURN
filteredRowsTable
Solved! Go to Solution.
Hi @Shruthi96 ,
The problem is here:
IF function checks a condition, and returns one value when it's TRUE, otherwise it returns a second value. It can only return a value instead of a table.
In your scenario, try this:
Coummincation =
VAR countrow =
IF ( CALCULATE ( COUNTROWS ( 'KPI - color' ), 'KPI - color'[Tag] > 0 ), 0, 1 )
VAR TOPROWS1 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( TOPN ( 1, 'KPI - color', [Tag], DESC ) )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR TOPROWS2 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( 'KPI - color' )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR filteredRowsTable1 =
CALCULATETABLE (
'KPI - color',
toprows1,
FILTER (
'KPI - color',
'KPI - color'[Status] = ""
|| 'KPI - color'[Status] = "In Progress"
)
)
VAR filteredRowsTable2 =
CALCULATETABLE (
'KPI - color',
toprows2,
FILTER (
'KPI - color',
'KPI - color'[Status] = ""
|| 'KPI - color'[Status] = "In Progress"
)
)
RETURN
IF (
countrow,
CONCATENATEX ( filteredRowsTable1, [Tag], ", " ),
CONCATENATEX ( filteredRowsTable2, [Tag], ", " )
)
Best Regards,
Icey
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Shruthi96 ,
The problem is here:
IF function checks a condition, and returns one value when it's TRUE, otherwise it returns a second value. It can only return a value instead of a table.
In your scenario, try this:
Coummincation =
VAR countrow =
IF ( CALCULATE ( COUNTROWS ( 'KPI - color' ), 'KPI - color'[Tag] > 0 ), 0, 1 )
VAR TOPROWS1 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( TOPN ( 1, 'KPI - color', [Tag], DESC ) )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR TOPROWS2 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( 'KPI - color' )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR filteredRowsTable1 =
CALCULATETABLE (
'KPI - color',
toprows1,
FILTER (
'KPI - color',
'KPI - color'[Status] = ""
|| 'KPI - color'[Status] = "In Progress"
)
)
VAR filteredRowsTable2 =
CALCULATETABLE (
'KPI - color',
toprows2,
FILTER (
'KPI - color',
'KPI - color'[Status] = ""
|| 'KPI - color'[Status] = "In Progress"
)
)
RETURN
IF (
countrow,
CONCATENATEX ( filteredRowsTable1, [Tag], ", " ),
CONCATENATEX ( filteredRowsTable2, [Tag], ", " )
)
Best Regards,
Icey
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Shruthi96
You may try
Coummincation =
VAR countrow =
IF ( CALCULATE ( COUNTROWS ( 'KPI - color' ), 'KPI - color'[Tag] > 0 ), 0, 1 )
VAR TOPROWS1 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( TOPN ( 1, 'KPI - color', [Tag], DESC ) )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR TOPROWS2 =
GENERATE (
VALUES ( 'KPI - color'[Service] ),
VAR mytable =
CALCULATETABLE ( 'KPI - color' )
RETURN
SUMMARIZE ( mytable, 'KPI - color'[Tag] )
)
VAR TOPROWS =
IF ( countrow, toprows1, TOPROWS2 )
VAR filteredRowsTable =
CALCULATETABLE (
'KPI - color',
TOPROWS,
FILTER (
'KPI - color',
'KPI - color'[Status] = ""
|| 'KPI - color'[Status] = "In Progress"
)
)
RETURN
MAXX ( filteredRowsTable, 'KPI - color'[Tag] )
There is any alternative way to solve?
@Shruthi96 , You are returning a table, And if you are creating a measure you need to return values like
countrows(filteredRowsTable)
@Shruthi96 , I doubt if will work for tables
VAR TOPROWS = if(countrow,toprows1,TOPROWS2)
Also was at the wrong place here - correct this one and check.
VAR filteredRowsTable =
CALCULATETABLE (
'KPI - color',
TOPROWS,
FILTER (
'KPI - color','KPI - color'[Status] ="" || 'KPI - color'[Status] = "In Progress")
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
49 | |
26 | |
21 | |
16 | |
12 |
User | Count |
---|---|
57 | |
49 | |
44 | |
19 | |
18 |