You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DAX中SWITCH嵌套LEFT函数报整数与文本类型不支持比较错误如何解决

错误原因

你写的DAX代码存在两处语法错误:

  • LEFT函数参数格式错误:LEFT的标准语法为LEFT(文本字段, 提取字符数),你将等于判断逻辑写进了LEFT的入参中,不符合语法要求
  • SWITCH函数用法错误:你当前的写法不符合SWITCH的调用规则,如果要多条件判断,需要使用SWITCH(TRUE(), 条件1, 结果1, 条件2, 结果2...)的模式

基础修正版代码

以下代码同时覆盖「PNUM以20开头的纯数字格式」「PNUM前两位为字母、第3-4位为20的带前缀格式」两种你提到的场景,完全匹配需求:

FormulaCode2 = 
SWITCH(
    TRUE(),
    // 匹配20开头的纯数字PNUM
    LEFT('Overall Product Portfolio Planning'[PNUM],2) = "20", 20,
    // 匹配前缀为两位字母、后接20的PNUM
    MID('Overall Product Portfolio Planning'[PNUM],3,2) = "20", 20,
    // 不匹配的返回空值,可按需修改为其他默认值
    BLANK()
)

通配符简化版代码

DAX的SEARCH函数原生支持通配符,?匹配单个任意字符、*匹配任意长度任意字符,不需要枚举所有可能的字母前缀,代码更简洁:

FormulaCode2 = 
VAR 匹配系列20 = OR(
    // 匹配20开头的所有PNUM
    SEARCH("20*", 'Overall Product Portfolio Planning'[PNUM], 1, 0) > 0,
    // 匹配前两位为任意字符、后接20的所有PNUM
    SEARCH("??20*", 'Overall Product Portfolio Planning'[PNUM], 1, 0) > 0
)
RETURN
IF(匹配系列20, 20, BLANK())

内容的提问来源于stack exchange,提问作者Tyler Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:06:03