Power BI中使用DAX按指定条件过滤字符串与数字生成新列
DAX实现方案
你需要在对应数据表中新建计算列,代码如下,注意替换代码里的你的表名为你实际的表名称:
#quant = VAR CurrentValue = '你的表名'[quantity] RETURN SWITCH( TRUE(), // 优先匹配未回答场景,直接返回原值 CurrentValue = "unanswered", CurrentValue, // 匹配数值为0的场景 VALUE(CurrentValue) = 0, "0", // 匹配数值大于15的场景 VALUE(CurrentValue) > 15, ">15", // 剩余场景均为小于等于15的非0数值 "<=15" )
逻辑说明
判断优先级按代码顺序执行:
- 首先判断当前行quantity值是否为
unanswered,是则直接返回原值 - 将文本格式的quantity转为数值后,判断是否等于0,是则返回
0 - 判断转换后的数值是否大于15,是则返回
>15 - 剩余所有非异常场景均为小于等于15的非0数值,返回
<=15
如果你的数据存在除了数字和unanswered之外的异常值,可以在VALUE函数外层套IFERROR处理异常,示例:IFERROR(VALUE(CurrentValue), CurrentValue),遇到无法转换为数字的内容会直接返回原值。
内容的提问来源于stack exchange,提问作者KReEd
相关产品推荐
相关产品推荐

