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

Power Query中如何区分列内两个最大值并为其中一个加1

用Power Query(M代码)处理双最大值的调整方案

假设你的数据源表叫表1,目标列名为数值,可以通过以下步骤实现只给其中一个最大值加1:

  • 先给表添加索引列,用唯一的索引值区分每一行,这样就能精准定位到你想修改的那个最大值行
  • 计算出目标列的最大值
  • 筛选出所有最大值所在行的索引,选择第一个或者最后一个(按需调整)
  • 新建列,判断当前行是否是你标记的目标最大值行,是则加1,其余保持原值

完整M代码示例

let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],
    // 添加索引列(从0开始计数)
    添加索引 = Table.AddIndexColumn(源, "索引", 0, 1, Int64.Type),
    // 获取数值列的最大值
    最大值 = List.Max(添加索引[数值]),
    // 取第一个最大值所在的索引,要改最后一个就把List.First换成List.Last
    目标索引 = List.First(List.PositionOf(添加索引[数值], 最大值, Occurrence.All)),
    // 生成调整后的新列
    添加新列 = Table.AddColumn(添加索引, "调整后数值", each if [索引] = 目标索引 then [数值] + 1 else [数值]),
    // 可选:移除临时用的索引列
    移除索引 = Table.RemoveColumns(添加新列,{"索引"})
in
    移除索引

关键说明

  • 如果想修改最后一个最大值,只需把代码里的List.First替换成List.Last即可
  • 索引列是临时用来区分行的,最后可以选择移除不影响结果
  • 这个方法也适用于多个最大值的场景,只要调整目标索引的取值逻辑(比如取第N个最大值,用List.Range之类的函数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:02:41