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

如何用Power Query实现遇文本"X"时索引列从0开始逐次加1

Power Query 新增遇"X"递增的条件索引列

实现逻辑:索引初始值为0,逐行判断,当前行存在指定文本"X"时索引值+1,无"X"时沿用上一行索引值,以下给两种可直接落地的实现方式:


界面操作版(无需写代码)

  • 数据导入PQ编辑器后,选中需要判断是否包含"X"的目标列,点击【添加列】选项卡→【条件列】
    • 条件规则设置为:当目标列值等于"X"时输出1,否则输出0,新列命名为临时计数,点击确定
  • 选中刚生成的临时计数列,点击【转换】选项卡→【累计求和】,直接生成逐行累计的结果列
  • 将累计结果列重命名为条件索引,删除临时计数列即可完成

M代码版(无临时列,效率更高)

如果不想生成冗余临时列,可以直接用M公式实现,不需要提前加基础索引:
在PQ编辑器的公式栏中,找到你上一步的查询步骤(通常命名为源,注意把代码里的文本列替换成你实际要判断的列名),新增以下步骤即可:

= Table.FromColumns(
    Table.ToColumns(源) & 
    {List.Accumulate(
        List.Buffer(源[文本列]),
        [idx=0, res={}],
        (state, current) => 
            if current = "X" 
            then [idx = state[idx]+1, res = state[res] & {state[idx]+1}]
            else [idx = state[idx], res = state[res] & {state[idx]}]
    )[res]},
    Value.Type(源) & type table[条件索引 = Int64.Type]
)

匹配规则提示:如果需要判断单元格包含"X"而非完全等于"X",把代码里的判断条件current = "X"替换为Text.Contains(current, "X")即可。

实现效果参考:
条件索引实现效果示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:15:38