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

Power Query中'token eof expected'错误排查及小时产量计算

问题排查与修正方案

原代码错误分析

  1. 列名引用错误:代码中多次出现的Valeur列不存在,原数据的产量列名为Production,这会导致语法解析失败,触发token eof expected错误。
  2. 硬编码索引不可靠:你用t[Production]{4}和t[Production]{1}硬编码索引,但每个机器分组只有2条数据(00:00、01:00),索引应为{1}和{0};且如果后续数据行数变化,硬编码索引会直接失效。
  3. each上下文逻辑错误:在Table.AddColumn的each表达式中,直接引用分组表t的索引值不符合Power Query的行上下文规则,应该先对分组内的表按Hour排序,再计算时段差值。

修正后的Power Query代码

// 假设你的前置步骤名称为"源",请根据实际情况替换
#"Grouped Rows" = Table.Group(源, {"Machine"}, {
    {"Difference", (t) => 
        let
            // 按Hour排序,确保时段顺序正确
            Sorted = Table.Sort(t,{{"Hour", Order.Ascending}}),
            // 添加差值列:当前时段Production减去上一时段
            AddDiff = Table.AddColumn(Sorted, "Hourly Production", each 
                if [Hour] = "00:00" then null // 00:00没有前一时段,差值为null
                else [Production] - Sorted[Production]{List.PositionOf(Sorted[Hour], [Hour])-1},
                Decimal.Type)
        in
            AddDiff
    }
}),
#"Expanded Difference" = Table.ExpandTableColumn(#"Grouped Rows", "Difference", 
    {"Hour", "Production", "Hourly Production"})
in
    #"Expanded Difference"

代码说明

  • 先对每个机器分组内的数据按Hour升序排序,保证时段顺序正确;
  • 针对00:00时段直接返回null(无前置时段),其他时段用当前行Production减去上一行的Production;
  • 展开列时保留原始的Hour、Production和新增的Hourly Production(小时产量)列,方便核对数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:55:34