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

Power Query多表条件筛选计算统计值问题求助

Power Query 实现按区间筛选历史数据并计算统计值

操作步骤

1. 生成筛选后的Price列表列

打开Forecast_Tbl,点击添加列 > 自定义列,输入以下M代码并将列命名为Filtered_Prices:

= Table.SelectRows(Historical_Data_Table, 
      each [Cloud%] >= [Min_Cloud] and [Cloud%] <= [Max_Cloud] 
      and [Wind_KM] >= [Min_Wind] and [Wind_KM] <= [Max_Wind]
      and [Solar_Utiliz] >= [Min_Solar] and [Solar_Utiliz] <= [Max_Solar]
    )[Price]

这一步会为每行生成符合当前区间条件的所有Price值组成的列表。

2. 逐个添加统计列

基于Filtered_Prices列,依次添加以下6个统计列:

COUNT列

自定义列公式:

= List.Count([Filtered_Prices])

命名为COUNT。

MIN列

自定义列公式(空列表时返回null避免报错):

= if List.Count([Filtered_Prices]) > 0 then List.Min([Filtered_Prices]) else null

命名为MIN。

MAX列

自定义列公式:

= if List.Count([Filtered_Prices]) > 0 then List.Max([Filtered_Prices]) else null

命名为MAX。

AVERAGE列

自定义列公式:

= if List.Count([Filtered_Prices]) > 0 then List.Average([Filtered_Prices]) else null

命名为AVERAGE。

MEDIAN列

自定义列公式:

= if List.Count([Filtered_Prices]) > 0 then List.Median([Filtered_Prices]) else null

命名为MEDIAN。

MODE列

Power Query无内置List.Mode函数,需先自定义函数:

  1. 点击主页 > 高级编辑器,在代码开头插入以下函数:
List.Mode = (lst as list) as any =>
    let
        CountItems = Table.Group(Table.FromList(lst, Splitter.SplitByNothing()), {"Column1"}, {{"Count", each Table.RowCount(_), Int64.Type}}),
        Sorted = Table.Sort(CountItems, {{"Count", Order.Descending}}),
        MaxCount = Sorted{0}[Count],
        ModeItems = Table.SelectRows(Sorted, each [Count] = MaxCount)[Column1],
        Result = if List.Count(ModeItems) = 1 then ModeItems{0} else ModeItems
    in
        Result;
  1. 返回Forecast_Tbl,添加MODE列的自定义公式:
= if List.Count([Filtered_Prices]) > 0 then List.Mode([Filtered_Prices]) else null

命名为MODE。

3. 可选:清理中间列

如果不需要Filtered_Prices列,右键删除即可。

注意点

  • 确保两个表的列名完全匹配,比如历史表的云量列是Cloud%,预测表的区间列是Min_Cloud/Max_Cloud,列名不一致时要修改M代码中的引用。
  • 若历史数据量极大,逐行筛选效率可能偏低,可后续再优化分组逻辑,新手优先用上述直观方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:21:54