使用 SWITCH 的 LEFT 函数:"DAX Comparison operations do not support comparing values of type Integer with values of type Text."

LEFT function using SWITCH: "DAX Comparison operations do not support comparing values of type Integer with values of type Text."

这是我第一次在 Whosebug 上发帖,昨天才进入 PowerBI 世界,因为我的公司使用 Access 和 VB 代码来编写所有报告,我已经受够了。

我目前正在尝试创建一个新列来写入序列号。这可以通过使用 PNUM 的前 2 或 4 位数字来实现。例如,系列 20 将表示为 2003、2010 或 RH201564, CH203456等对于我的新专栏,我希望所有这些结果都是 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 就容易多了!

如果有人阅读我的长篇解释,我将不胜感激。我希望回馈这个社区并尽可能多地学习!谢谢

The [PNUM] Column

你的语法有点不对劲。 SWITCH 的第一个参数是要检查的对象。

我认为这就是您要写的内容。

FormulaCode2 =
SWITCH (
    LEFT ( 'Overall Product Portfolio Planning'[PNUM], 2 ),
    "RH", 20,
    "ZR", 20,
    "CD", 20
)

另一方面,如果要提取第 3 个和第 4 个字符,则可以使用 MID 而不是 LEFT。

MID ( 'Overall Product Portfolio Planning'[PNUM], 3, 2 )