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

Power Query:如何通过列位置添加星期几列

解决Power Query中用列位置代替列名添加星期几列的问题

你之前的代码无效是因为Table.ColumnNames(#"Expanded Data"){1}返回的是列名字符串,而Date.DayOfWeek需要的是日期类型的值,字符串无法被识别为日期,所以报错。

要实现用列位置获取对应日期值并计算星期几,你可以通过以下方式修改代码:

方法1:先获取目标列名,再通过记录字段访问值

let
    // 先获取第2列(索引从0开始,{1}对应第二列)的列名
    TargetColName = Table.ColumnNames(#"Expanded Data"){1},
    // 保留你之前的步骤,比如#"Add DAY"
    #"Add DAY" = ... // 你的现有步骤
    #"Add DAY OF WEEK" = Table.AddColumn(#"Add DAY", "WEEK DAY", each Date.DayOfWeek(Record.Field(_, TargetColName), Day.Monday))
in
    #"Add DAY OF WEEK"

方法2:直接嵌套列名获取逻辑(无需单独变量)

如果不想单独定义变量,可以把列名获取逻辑直接写在each表达式里:

#"Add DAY OF WEEK" = Table.AddColumn(#"Add DAY", "WEEK DAY", 
    each Date.DayOfWeek(
        Record.Field(_, Table.ColumnNames(#"Expanded Data"){1}), 
        Day.Monday
    )
)

核心逻辑是:

  • 在each上下文里,_代表当前行的记录
  • 用Record.Field(_, 列名)可以从当前行记录中取出对应列的实际值,而不是列名本身
  • 这样Date.DayOfWeek就能拿到正确的日期类型值进行计算

内容的提问来源于stack exchange,提问作者Carlos Menendez Borge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:00:06