基于 Power Bi 中 concat 的 If 语句
If statement based on the concat in Power Bi
我有 4 列,分别是 A、B、C 和 D。这 4 列包含数字和文本或数字或文本。
如果 A&B 和 C&D 列匹配,则 return“确定”,如果 A&B 和 C&D 列不匹配,则 return“否”,如果 A&B 或 C&D 列为空白,则 return“空白”。
我通过使用重复列(A&B、C&D)获得了我想要的结果,但我想要没有重复列的相同结果。
A&B = 'DATA2'[A]&"-"&'DATA2'[B]
C&D = 'DATA2'[C]&"-"&'DATA2'[D]
结果 = IF(DATA2[A&B]="-","否",IF(DATA2[C&D]="-","否", IF(DATA2[A&B] = DATA2[C&D],"好的","否")))
我又尝试了一个 DAX 公式,但那个也给出了错误 “无法将文本类型的值 'AA1' 转换为数字类型”.
结果 1 = 计算(
如果 (
SUMX(
'DATA2',
'DATA2'[A]+'DATA2'[B]+'DATA2'[C]+'DATA2'[D])>0,0,1
))
我正在寻找新的计算列选项。
非常感谢任何帮助。
数据:
A B C D DESIRED RESULT
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
BB1 RR1 DD1 XX3 NO
BB1 RR1 DD1 XX3 NO
BB1 RR1 DD1 XX3 NO
BB1 RR1 DD1 XX3 NO
BB1 RR2 GG1 HH1 NO
BB1 RR2 GG1 HH2 NO
BB1 RR2 GG1 HH3 NO
NO
NO
NO
NO
BB1 RR2 BB1 RR2 OK
我会这样解决:
Result =
var AB = [A]&[B]
var CD = [C]&[D]
return
SWITCH(
TRUE(),
// Blank return if both AB and CD are blank/null
(ISBLANK(AB) || AB = "") && (ISBLANK(CD) || CD = ""), BLANK(),
// A1 return if AB or CD (but not both) are blank
(ISBLANK(AB) || AB = "") || (ISBLANK(CD) || CD = ""), "A1",
// OK return if AB = CD
AB = CD, "OK",
// Catch all remaining cases with NO
"NO"
)
我有 4 列,分别是 A、B、C 和 D。这 4 列包含数字和文本或数字或文本。
如果 A&B 和 C&D 列匹配,则 return“确定”,如果 A&B 和 C&D 列不匹配,则 return“否”,如果 A&B 或 C&D 列为空白,则 return“空白”。
我通过使用重复列(A&B、C&D)获得了我想要的结果,但我想要没有重复列的相同结果。
A&B = 'DATA2'[A]&"-"&'DATA2'[B]
C&D = 'DATA2'[C]&"-"&'DATA2'[D]
结果 = IF(DATA2[A&B]="-","否",IF(DATA2[C&D]="-","否", IF(DATA2[A&B] = DATA2[C&D],"好的","否")))
我又尝试了一个 DAX 公式,但那个也给出了错误 “无法将文本类型的值 'AA1' 转换为数字类型”.
结果 1 = 计算( 如果 ( SUMX( 'DATA2', 'DATA2'[A]+'DATA2'[B]+'DATA2'[C]+'DATA2'[D])>0,0,1 ))
我正在寻找新的计算列选项。
非常感谢任何帮助。
数据:
A B C D DESIRED RESULT
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT1 DD1 XX1 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
AA1 TT2 DD1 XX2 NO
BB1 RR1 DD1 XX3 NO
BB1 RR1 DD1 XX3 NO
BB1 RR1 DD1 XX3 NO
BB1 RR1 DD1 XX3 NO
BB1 RR2 GG1 HH1 NO
BB1 RR2 GG1 HH2 NO
BB1 RR2 GG1 HH3 NO
NO
NO
NO
NO
BB1 RR2 BB1 RR2 OK
我会这样解决:
Result =
var AB = [A]&[B]
var CD = [C]&[D]
return
SWITCH(
TRUE(),
// Blank return if both AB and CD are blank/null
(ISBLANK(AB) || AB = "") && (ISBLANK(CD) || CD = ""), BLANK(),
// A1 return if AB or CD (but not both) are blank
(ISBLANK(AB) || AB = "") || (ISBLANK(CD) || CD = ""), "A1",
// OK return if AB = CD
AB = CD, "OK",
// Catch all remaining cases with NO
"NO"
)