如果列中存在值,则返回字符串

时间:2018-03-08 08:35:48

标签: excel powerbi dax powerpivot

我有一个包含文本的列,例如

column1
    3
    4
    5
    6
    7
    8
    9.2
    10
    11
    txt1
    txt2

我想创建一个新的column2,它给出了以下输出。

column1         column2    
    3          3-6
    4          3-6
    5          3-6
    6          3-6
    7          7-10
    8          7-10
    9.2        7-10
    10         7-10
    11         11
    txt1       txt1
    txt2       txt2

我已尝试使用以下Dax函数,但我没有让它工作,因为它只返回“值如果为false”。我在Column1上的格式是文本。

 column2  = IF(CONTAINS(Table1;Table1[column1];"3";Table1[Column1];"4");"3-8";"9.5-10").........

我已经尝试过FIND功能,但没有运气。 有人有什么提示吗?如果有人知道如何在Excel中执行此操作,也许可以通过这种方式解决这个问题?:D / d

1 个答案:

答案 0 :(得分:1)

我不确定你的存储值的逻辑究竟是什么,但是你应该能够按照这些方式写出一些内容:

Column2 = SWITCH(TRUE(),
                 ISERROR(VALUE(Table1[Column1])), Table1[Column1],
                 VALUE(Table1[Column1]) >= 3 && VALUE(Table1[Column1]) <= 6, "3-6",
                 VALUE(Table1[Column1]) >= 7 && VALUE(Table1[Column1]) <= 10, "7-10",
                 Table1[Column1])

这个SWITCH函数将返回第一个求值为true的东西,否则返回最后一个参数。第一对检查值是否可以转换为数字,如果不能返回原始值。接下来的两对检查数字是否在某个范围内,并返回这些范围的指定字符串。

这是一个更详细地解释SWITCH(TRUE()...)构造的链接:

https://powerpivotpro.com/2015/03/the-diabolical-genius-of-switch-true/