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

Power Query调用List.Dates添加自定义日期表列时报类型转换错误

问题场景

在Power Query中添加自定义列,目标是基于起始日期生成对应日期表,初始编写的M语法如下:

= Table.AddColumn(TypeDate, "AddTable", each Table.FromList(
    List.Dates([Date_begin],1,#duration(1,0,0,0)
    )))

涉及参数说明:

  • TypeDate:当前Power Query查询的最后一步名称
  • "AddTable":新增自定义列的名称
  • [Date_begin]:存储日期列表起始日期的列
报错信息

运行代码后Power Query返回的报错翻译如下:

表达式错误:无法将值 #date(2021, 1, 1) 转换为文本。
详细信息:
值=01/01/2021
类型=[Type]

报错原因

Table.FromList函数未显式指定拆分逻辑时,默认会将传入列表的元素按文本类型处理以执行拆分操作,而List.Dates生成的是日期类型值,隐式类型转换失败触发报错。

修复方案

方案1:显式指定Table.FromList的拆分参数

给Table.FromList传入不做任何拆分的拆分器,同时指定列名和对应类型,避免隐式文本转换,修正后代码:

= Table.AddColumn(TypeDate, "AddTable", each Table.FromList(
    List.Dates([Date_begin],1,#duration(1,0,0,0)),
    Splitter.SplitByNothing(),
    {"Date"},
    null,
    ExtraValues.Error
))

参数说明:

  • Splitter.SplitByNothing():不对列表元素做任何拆分,每个元素直接作为单行单值存入表格,不会触发文本转换逻辑
  • {"Date"}:为生成的单列表指定列名,可按需替换为自定义名称

方案2:直接用#table构造器生成表(更简洁)

由于当前逻辑仅需生成包含单个起始日期的单列表格,可直接用表构造器编写,完全规避类型转换问题:

= Table.AddColumn(TypeDate, "AddTable", each #table(type table [Date = date], {{[Date_begin]}}))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:39:22