如何编写具有多个条件的 if 语句来创建计算列

How to write if statement with multiple conditions to create a calculated column

所以这可能很容易,但不知何故我找不到可行的解决方案。我的问题如下:

示例:

我有一个文本列 A,其中包含以下字符串(每个字符串在不同的行中):

"DtD 24"; "SGK 12"; "STD 99"等

现在我想做的是编写一个公式来逐行检查上述列,然后

  1. 当它在字符串中的某处找到“12”时,它应该return“12”作为该行的值
  2. 当它在字符串的某处找到“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 () )
    )
)