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

Power BI M语言if then条件语句报错 自定义Launch Week列全列异常

问题根因

  • 数据类型不匹配:M是强类型语言,若表中的[Date]列不是日期类型,和#date类型的值做比较会直接抛出错误,不会返回null,这是全列报错的最常见原因。
  • 语法冗余错误:你提供的代码片段末尾多了多余的右括号和逗号,放在完整的Power Query步骤链中会触发语法异常。
  • 逻辑冗余:逐行判断日期相等的写法容易出现输入错误,也不利于后续维护调整。

修复方案

  1. 先对Date列做类型转换,在添加自定义列前新增一步类型转换步骤:
// 请将下方代码中的`#"Previous Step"`替换为你添加自定义列前的上一步步骤名
#"Changed Date Type" = Table.TransformColumnTypes(#"Previous Step", {{"Date", type date}})
  1. 替换原自定义列代码为区间判断写法,消除逐行比较的冗余问题,同时修正语法问题:
#"Added Custom1" = Table.AddColumn(#"Changed Date Type", "Launch Week", each
    let
        CurrentDate = [Date]
    in
        if CurrentDate >= #date(2021, 4, 14) and CurrentDate <= #date(2021, 4, 21) then "Week 1 (Apr. 15 - Apr. 21)"
        else if CurrentDate >= #date(2021, 4, 22) and CurrentDate <= #date(2021, 4, 28) then "Week 2 (Apr. 22 - Apr. 28)"
        else null
)

注意:你原逻辑中包含了4月14日,但周次标签标注的是4月15日开始,若为笔误可自行调整区间起始日期即可。

如果修改后仍有报错,点击单元格旁的错误标识查看具体错误描述,可快速定位剩余问题。

内容的提问来源于stack exchange,提问作者G H

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:57:04