【发布时间】:2021-12-19 16:08:09
【问题描述】:
这是我第一次在 stackoverflow 上发帖,昨天刚刚进入 PowerBI 世界,因为我的公司使用 Access 和 VB 代码编写所有报告,我已经受够了。
我目前正在尝试创建一个将写入序列号的新列。这可以通过使用 PNUM 的前 2 或 4 位数字来实现。例如,系列 20 将表示为 2003、2010 或 RH201564、CH20 3456等对于我的新专栏,我希望所有这些结果都显示为 20。
下面是我当前使用 SWITCH 中的 LEFT 函数编写此专栏的代码。当我收到标题中提到的这个错误时,我不明白。
FormulaCode2 =
SWITCH(
LEFT('Overall Product Portfolio Planning'[PNUM],2 ="RH"),20,
LEFT('Overall Product Portfolio Planning'[PNUM],2 ="ZR"),20,
LEFT('Overall Product Portfolio Planning'[PNUM],2 ="CD"),20
)
注意:起初,我尝试了最简单的方法,尝试创建一个列表的 VAR,例如 {"A".."z"} 来捕获可能出现在前面的 AA-zz 的所有可能形式系列。但是,我无法走得很远。我希望 DAX 能够使用通配符,这样放置 ??20 就容易多了!
如果有人阅读了我的长篇解释,我将不胜感激。我希望回馈这个社区并尽可能多地学习!谢谢。
【问题讨论】:
-
这种转换更适合 M/PowerQuery,为什么不使用它呢?您能否提供更多关于“整体产品组合计划”[PNUM] 中值的示例(以表格形式)?还有那些不应该被限定为 20 以避免误报
-
所以,我从 [PNUM] 中提取的列包含文本和数字。由于 SWITCH 和 LEFT 与文本不兼容,我如何能够使用 PNUM 作为参考来获取我的新系列列?我添加了 PNUM 列的图片。
-
SWITCH 可以很好地处理文本,错误是由于 LEFT 中的布尔值而不是整数
标签: powerbi switch-statement dax