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

Power Query日期判断if语句报Token RightParen expected错误如何解决

问题根因
  • 语法错误:Power Query M语言里if是条件语句关键字,不是函数,你在if后面多写了一个左括号,整个表达式末尾只有一个右括号,括号不匹配,解析器运行到then后的Date位置时就会抛出「Token RightParen expected」报错。
  • 逻辑偏差:Date.DayOfWeek默认以周日为一周第一天,返回值规则是周日=0、周一=1、周二=2……周六=6,你原代码里判断=0实际匹配的是周日,和你要判断「周一」的需求不符。
修正代码

直接修正语法、对齐需求的写法如下:

if Date.DayOfWeek(DateTime.FixedLocalNow(), Day.Monday) = 0 then
    Date.AddDays(Date.From(DateTime.FixedLocalNow()), -3)
else
    Date.AddDays(Date.From(DateTime.FixedLocalNow()), -1)

给Date.DayOfWeek传入第二个参数Day.Monday,指定周一为一周第一天,此时周一的返回值固定为0,不会出现星期匹配错位的问题。

如果要简化代码、避免重复调用取当前时间的逻辑,可以用let块封装:

let
    CurrentDate = Date.From(DateTime.FixedLocalNow()),
    CurrentWeekday = Date.DayOfWeek(CurrentDate, Day.Monday)
in
    if CurrentWeekday = 0 then Date.AddDays(CurrentDate, -3) else Date.AddDays(CurrentDate, -1)
补充说明

M语言if表达式的标准结构是if <判断条件> then <条件成立返回值> else <条件不成立返回值>,不需要给整个判断条件额外套一层外层括号,只有判断条件里的函数调用需要传参时,才按函数规则写括号即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 21:03:37