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

如何在Excel Power Query中提取时间序列进程的前一日运行状态

Power Query 实现进程前日状态匹配与启停识别方案

前置处理:修正澳式日期格式

首先要确保日期列被正确识别,避免日/月位置颠倒:

  • 导入原始数据后,选中Date列,在「转换」选项卡选择「数据类型:日期」,如果识别错误,直接用自定义公式转换:= Date.From([Date], "en-AU"),指定澳大利亚区域解析d/m/yyyy格式的日期。

核心实现步骤(全通用,适配任意数量进程)

方案:按进程分组后移位匹配前序状态(性能最优,避免笛卡尔积)

  1. 按进程分组:选中Process列,点击「转换」-「分组依据」,配置如下:
    • 分组依据:Process
    • 新列名:ProcessDailyData
    • 操作:所有行
  2. 处理单个进程的每日数据:添加自定义列,输入M代码处理每个进程的子表:
= Table.AddColumn(#"替换为上一步的步骤名称", "ProcessedData", (each) => 
    let
        // 子表按日期升序排序
        Sorted = Table.Sort([ProcessDailyData],{{"Date", Order.Ascending}}),
        // 添加上一行的日期和在线状态
        AddPrev = Table.Shift(Sorted, {{"IsOnline", 1, "IsOnlinePrev"}, {"Date", 1, "DatePrev"}}),
        // 校验上一行是否为前一天,避免日期断档导致匹配错误
        AddValidPrevStatus = Table.AddColumn(AddPrev, "IsOnlineYesterday", each if [DatePrev] = Date.AddDays([Date], -1) then [IsOnlinePrev] else null)
    in
        AddValidPrevStatus
)

兼容提示:如果你的Power Query版本不支持Table.Shift函数,可用索引列方案替换移位逻辑:

// 替换上述AddPrev部分的代码即可
AddIndex = Table.AddIndexColumn(Sorted, "Index", 0, 1, Int64.Type),
AddPrev = Table.AddColumn(AddIndex, "PrevRow", each try AddIndex{[Index]-1} otherwise null),
ExpandPrev = Table.ExpandRecordColumn(AddPrev, "PrevRow", {"IsOnline", "Date"}, {"IsOnlinePrev", "DatePrev"})
  1. 展开数据:删除原始ProcessDailyData列,点击ProcessedData列右上角的展开按钮,选择需要保留的字段(Date、Process、IsOnline、IsOnlineYesterday)即可。
  2. 添加启停状态标识:新增自定义列Status,输入公式:
= if [IsOnlineYesterday] = true and [IsOnline] = false then "关停"
else if [IsOnlineYesterday] = false and [IsOnline] = true then "重启"
else null

筛选掉Status列为空的行,即可直接得到每日所有关停/重启的进程清单。

后续使用

加载到Excel后,可直接基于结果表做数据透视:

  • 行/列维度可选日期、周、月(可通过日期字段自动分组实现)
  • 值维度统计进程数量,即可得到任意时间段的关停、重启进程统计。

示例运行结果(对应测试数据)

DateProcessIsOnlineIsOnlineYesterdayStatus
3/1/2020aaafalsetrue关停
4/1/2020bbbfalsetrue关停
5/1/2020bbbtruefalse重启
6/1/2020aaatruefalse重启

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 19:24:01