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

Power BI中如何按行统计多列重复值并按Index列分组处理

解决方案

Python Pandas 实现(适合大数据量场景)

核心思路是按Index分组后,先对相邻的A1、A2做去重,再对后续列全局去重,保证最终结果仅保留符合规则的唯一值,代码示例如下:

import pandas as pd

# 替换下方路径为你的本地文件路径,支持csv、xlsx等格式
df = pd.read_excel("你的数据文件路径.xlsx")

def process_single_group(group):
    # 提取当前分组A1~A4的数值
    col_list = ["A1", "A2", "A3", "A4"]
    val_list = group[col_list].iloc[0].tolist()
    processed = []
    # 处理A1与A2的相邻去重规则
    if val_list[0] == val_list[1]:
        processed.append(val_list[0])
    else:
        processed.extend([val_list[0], val_list[1]])
    # 处理A3、A4,仅新增未出现过的数值
    for v in val_list[2:]:
        if v not in processed:
            processed.append(v)
    # 补全空值保证输出为4列,可根据需要修改补位值
    return pd.Series(processed + [pd.NA] * (4 - len(processed)), index=col_list)

# 执行分组处理
output_df = df.groupby("Index", as_index=False).apply(process_single_group)

# 导出结果到本地文件
output_df.to_excel("处理后结果.xlsx", index=False)

Excel Power Query 实现(适合小数据集快速操作)

无需写复杂代码,通过界面操作即可完成:

  • 选中你的数据区域,点击「数据」选项卡→「从表格/区域」,导入Power Query编辑器
  • 点击「转换」选项卡→「分组依据」,分组列选Index,新列名自定义,操作选「所有行」,点击确定
  • 点击「添加列」→「自定义列」,输入如下公式(替换公式里的分组表为你上一步自定义的新列名):
    let
      current_row = Table.First([分组表]),
      a1_val = current_row[A1],
      a2_val = current_row[A2],
      first_part = if a1_val = a2_val then {a1_val} else {a1_val, a2_val},
      add_a3 = if not List.Contains(first_part, current_row[A3]) then first_part & {current_row[A3]} else first_part,
      add_a4 = if not List.Contains(add_a3, current_row[A4]) then add_a3 & {current_row[A4]} else add_a3
    in
      add_a4
    
  • 点击自定义列右上角的展开按钮,选择「扩展到新行」,再按Index分组把值转成多列即可导出到Excel工作表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:54:06