我有兩列是 A 和 B,兩列都包含文本,有時包含文本和數字。
我想通過使用基於 A 列和 B 列的 DAX 以及下面提到的規則來生成新的計算列。
如果 A 列等於 DNK,B 列等於 Apple,則結果正常
如果 A 列等於 DNK 且 B 不等於 Apple,則結果不正常
如果 A 列等於 DNK,B 列是 NA,則結果為 XX。
DNK 期望基於 A&B 列的三個不同結果,具有多個場景,並且 ADNK 和 BJB 的結果相同。
如果 A 列等於 ADNK,B 列等於 Orange,則結果正常
如果 A 列等於 ADNK 且 B 不等於 Orange,則結果不正常
如果 A 列等於 ADNK,B 列是 NA,則結果為 XX。
如果列 A 等於 BJB 且 B 等於 Apple1,則結果正常
如果 A 列等於 BJB 且 B 不等於 Apple1,則結果不正常
如果 A 列等於 BJB,B 列是 NA,則結果為 XX。
A B RESULT
DNK APPLE OK
DNK APPLE OK
DNK ORANGE NOT OK
DNK ORANGE NOT OK
DNK APPLE OK
DNK APPLE OK
DNK NA XX
DNK NA XX
ADNK ORANGE OK
ADNK ORANGE OK
ADNK ORANGE OK
ADNK ORANGE OK
ADNK NA XX
ADNK APPLE NOT OK
ADNK APPLE NOT OK
BJB APPLE1 OK
BJB ORANGE1 NOT OK
BJB APPLE1 OK
BJB ORANGE1 NOT OK
BJB APPLE1 OK
BJB APPLE1 OK
BJB NA XX
BJB NA XX
BJB ORANGE1 NOT OK
BJB APPLE1 OK
根據您的要求,您可以通過兩種方式實現
一種。通過優化SWITCH
如下
desiredColumn1 =
SWITCH (
TRUE (),
[A] <> BLANK ()
&& [B] = "NA", "XX",
[A]="DNK"&&[B]="Apple"||[A]="ADNK"&&[B]="Orange"||[A]="BJB"&&[B]="Apple1","ok",
"not ok"
)
灣 通過構建一個白名單表並在事實中迭代它
desiredColumn2 =
VAR _whiteList =
DATATABLE (
"a1", STRING,
"b1", STRING,
"c1", STRING,
{
{ "DNK", "Apple", "ok" },
{ "DNK", "NA", "XX" },
{ "ADNK", "Orange", "ok" },
{ "ADNK", "NA", "XX" },
{ "BJB", "Apple1", "ok" },
{ "BJB", "NA", "XX" }
}
)
VAR _fromList =
MAXX (
FILTER (
_whiteList,
[a1] = EARLIER ( 'Table'[A] )
&& [b1] = EARLIER ( 'Table'[B] )
),
[c1]
)
RETURN
IF ( _fromList = BLANK (), "not ok", _fromList )
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句