如何编写具有多个条件的 if 语句来创建计算列
How to write if statement with multiple conditions to create a calculated column
所以这可能很容易,但不知何故我找不到可行的解决方案。我的问题如下:
- 在 ssas 的表格模型中,我想创建一个计算列
- 如果满足特定条件,则应检查另一列的每一行,并且根据满足的条件,应将值 return 编辑到计算列中
示例:
我有一个文本列 A,其中包含以下字符串(每个字符串在不同的行中):
"DtD 24"; "SGK 12"; "STD 99"等
现在我想做的是编写一个公式来逐行检查上述列,然后
- 当它在字符串中的某处找到“12”时,它应该return“12”作为该行的值
- 当它在字符串的某处找到“24”时,它应该return“24”作为该行的值
...等等 4 种不同的情况。
我尝试使用 switch()、if()、find() 找到解决方案,但 none 似乎有效。有没有人给我一些提示,解决这个问题的聪明方法是什么?
非常感谢您!
这个公式应该适合你。您可以通过添加 IF 语句来扩展它以检查更多数字。请检查您使用的 SSAS 版本 运行,因为 CONTAINSSTRING 函数仅适用于 >= SSAS 2019 CTP2.3。
Column =
IF (
CONTAINSSTRING ( 'Table'[Column A], "12" ),
12,
IF (
CONTAINSSTRING ( 'Table'[Column A], "24" ),
24,
IF ( CONTAINSSTRING ( 'Table'[Column A], "99" ), 99, BLANK () )
)
)
如果您 运行 使用的是旧版本,您可以尝试不太清晰的 SEARCH 功能:
Column =
IF (
(SEARCH("12", [Column A], 1, 0) > 0),
12,
IF (
(SEARCH("24", [Column A], 1, 0) > 0),
24,
IF ( (SEARCH("99", [Column A], 1, 0) > 0), 99, BLANK () )
)
)
所以这可能很容易,但不知何故我找不到可行的解决方案。我的问题如下:
- 在 ssas 的表格模型中,我想创建一个计算列
- 如果满足特定条件,则应检查另一列的每一行,并且根据满足的条件,应将值 return 编辑到计算列中
示例:
我有一个文本列 A,其中包含以下字符串(每个字符串在不同的行中):
"DtD 24"; "SGK 12"; "STD 99"等
现在我想做的是编写一个公式来逐行检查上述列,然后
- 当它在字符串中的某处找到“12”时,它应该return“12”作为该行的值
- 当它在字符串的某处找到“24”时,它应该return“24”作为该行的值
...等等 4 种不同的情况。
我尝试使用 switch()、if()、find() 找到解决方案,但 none 似乎有效。有没有人给我一些提示,解决这个问题的聪明方法是什么?
非常感谢您!
这个公式应该适合你。您可以通过添加 IF 语句来扩展它以检查更多数字。请检查您使用的 SSAS 版本 运行,因为 CONTAINSSTRING 函数仅适用于 >= SSAS 2019 CTP2.3。
Column =
IF (
CONTAINSSTRING ( 'Table'[Column A], "12" ),
12,
IF (
CONTAINSSTRING ( 'Table'[Column A], "24" ),
24,
IF ( CONTAINSSTRING ( 'Table'[Column A], "99" ), 99, BLANK () )
)
)
如果您 运行 使用的是旧版本,您可以尝试不太清晰的 SEARCH 功能:
Column =
IF (
(SEARCH("12", [Column A], 1, 0) > 0),
12,
IF (
(SEARCH("24", [Column A], 1, 0) > 0),
24,
IF ( (SEARCH("99", [Column A], 1, 0) > 0), 99, BLANK () )
)
)