我有一个如下示例表
任何相同的ID列M 名称为 A(以“Ann”开头)和 B,然后我希望将所需的解决方案作为 A,B
然后我考虑将任何单词“Ann”和 B 计为 1,所以当任何相同的 ID 的列Calculation为 2 或大于 2 时,给我“A,B”。否则,只需在“M Name”列中返回原始名称
有人可以帮助 PowerBI DAX 或有任何建议吗?
我有一个如下示例表
任何相同的ID列M 名称为 A(以“Ann”开头)和 B,然后我希望将所需的解决方案作为 A,B
然后我考虑将任何单词“Ann”和 B 计为 1,所以当任何相同的 ID 的列Calculation为 2 或大于 2 时,给我“A,B”。否则,只需在“M Name”列中返回原始名称
有人可以帮助 PowerBI DAX 或有任何建议吗?
有多种方法可以做到这一点:
使用 FILTER 计算的列:
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 )
使用 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 )
使用 FILTER 测量:
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 测量
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 的结果