groupby的PowerBI DAX问题或其他可能的问题
我有一个如下的样品表 任何相同的ID都有列M Name和A(以“Ann”开头)和B,然后我希望得到所需的解决方案,如A,B 然后我考虑将任何单词“Ann”和B计算为1,因此当任何相同ID的列计算为2或大于2时,给我“A,B”。否则,只需在“M name”列中返回原始名称groupby的PowerBI DAX问题或其他可能的问题,powerbi,dax,powerbi-desktop,daxstudio,Powerbi,Dax,Powerbi Desktop,Daxstudio,我有一个如下的样品表 任何相同的ID都有列M Name和A(以“Ann”开头)和B,然后我希望得到所需的解决方案,如A,B 然后我考虑将任何单词“Ann”和B计算为1,因此当任何相同ID的列计算为2或大于2时,给我“A,B”。否则,只需在“M name”列中返回原始名称 有人能帮我使用PowerBI DAX吗?或者有什么建议吗?有多种方法可以做到这一点: 使用过滤器计算的列: Column 1 = VAR CurrentID = rjap[ID] VAR CurrentName = rjap
有人能帮我使用PowerBI DAX吗?或者有什么建议吗?有多种方法可以做到这一点: 使用过滤器计算的列:
Column 1 =
VAR CurrentID = rjap[ID]
VAR CurrentName = rjap[M Name]
VAR RowsWithSameID =
FILTER ( rjap, rjap[ID] = CurrentID )
VAR Result =
FILTER (
RowsWithSameID,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B"
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
Measure 1 =
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR RowsWithSameID =
FILTER (
ALLSELECTED ( rjap ),
rjap[ID] = CurrentID
)
VAR Result =
FILTER (
RowsWithSameID,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B"
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
使用CALCULATETABLE计算的列
Column 2 =
VAR CurrentID = rjap[ID]
VAR CurrentName = rjap[M Name]
VAR Result =
CALCULATETABLE (
rjap,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B",
rjap[ID] = CurrentID,
REMOVEFILTERS ( rjap )
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
Measure 2 =
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR Result =
CALCULATETABLE (
rjap,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B",
rjap[ID] = CurrentID,
ALLSELECTED ( rjap )
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
使用过滤器测量:
Column 1 =
VAR CurrentID = rjap[ID]
VAR CurrentName = rjap[M Name]
VAR RowsWithSameID =
FILTER ( rjap, rjap[ID] = CurrentID )
VAR Result =
FILTER (
RowsWithSameID,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B"
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
Measure 1 =
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR RowsWithSameID =
FILTER (
ALLSELECTED ( rjap ),
rjap[ID] = CurrentID
)
VAR Result =
FILTER (
RowsWithSameID,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B"
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
用可计算的方法测量
Column 2 =
VAR CurrentID = rjap[ID]
VAR CurrentName = rjap[M Name]
VAR Result =
CALCULATETABLE (
rjap,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B",
rjap[ID] = CurrentID,
REMOVEFILTERS ( rjap )
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
Measure 2 =
VAR CurrentID = SELECTEDVALUE ( rjap[ID] )
VAR CurrentName = SELECTEDVALUE ( rjap[M Name] )
VAR Result =
CALCULATETABLE (
rjap,
LEFT ( rjap[M Name], 3 ) = "Ann"
|| LEFT ( rjap[M Name], 1 ) = "B",
rjap[ID] = CurrentID,
ALLSELECTED ( rjap )
)
RETURN
IF ( COUNTROWS ( Result ) >= 2, "A, B", CurrentName )
我使用了ALLSELECTED,所以如果您在切片器上进行了选择,您将只看到所选ID的结果
您是在寻找计算列还是度量值?在这个场景中,无论哪一个是最好的,我认为最好是有计算列,因为我可以再次检查