Excel Power Query编写公式报Token comma expected错误排查
问题根因
你的Power Query M公式存在三类问题,其中直接触发Token comma expected报错的是语法书写错误:
- 语法符号错误
- 第三行的
Date.From(DateTime.LocalNow()仅书写了Date.From函数的左括号,缺少配对的右括号。解析器读到then关键字时,判定你仍在填写Date.From的传入参数,预期需要逗号分隔多参数,因此抛出该报错。 - 第一行的
Date.FromDateTime.LocalNow()为笔误:M语言不存在Date.FromDateTime这个对象或函数,正确获取当前纯日期值的写法为Date.From(DateTime.LocalNow()),这里是将Date.From(的左括号误写为点号,才拼接出了不存在的函数名。
- 第三行的
- 逻辑判断优先级错误
M语言中and的运算优先级高于or,你当前的代码未加括号限定逻辑范围,实际执行的判断逻辑为(可配送起始日期>=当前日期 且 可配送结束日期为空) 或者 (可配送结束日期>=当前日期),和常规业务需要的「起始日期已生效,且(结束日期未填写 或 结束日期未过期)」的判断逻辑不符,会出现结果误判。 - 空值判断写法不规范
M语言中直接使用= null判断空值存在兼容问题,部分查询场景下会出现空值匹配失效,规范写法为Value.Is([字段名], type null)。
修正后可直接运行的代码
if [DATUM_LEVERBAAR_VANAF] >= Date.From(DateTime.LocalNow()) and ( Value.Is([DATUM_LEVERBAAR_TM], type null) or [DATUM_LEVERBAAR_TM] >= Date.From(DateTime.LocalNow()) ) then "Ja" else "Nee"
内容的提问来源于stack exchange,提问作者Hunt86
相关产品推荐
相关产品推荐

