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

如何在Excel中基于某列值合并多行数据?

合并重复行的非空列数据(Excel/Python实现方案)

一、Excel实现方案(适配4000唯一值+30列的规模)

方法1:Power Query(推荐,高效易操作)

针对你的数据量级,Power Query是最省心的选择,步骤如下:

  1. 选中数据区域,点击「数据」选项卡 → 「从表格/区域」(旧版Excel选「自表格」),确认弹窗中「我的表格有标题」已勾选,进入Power Query编辑器。
  2. 选中第一列(即含Dog/Cat的列),点击「转换」选项卡 → 「分组依据」,切换到「高级」模式。
  3. 配置分组规则:
    • 「分组依据」选择第一列的列名(比如“动物”)
    • 点击「添加」,为每一列(A到F)设置聚合规则:
      • 「新列名」填对应列名(如A、B)
      • 「操作」选择「最大值」(文本类型的MAX会自动忽略空值,保留唯一非空值)
  4. 点击「确定」生成合并后的表格,最后点击「关闭并上载」,将结果导入Excel工作表。

方法2:公式法(适合临时快速处理)

假设原始数据在A2:F7,第一列为A列,在空白区域生成结果:

  1. 提取唯一值:在H2输入公式 =UNIQUE(A2:A7),下拉得到所有唯一分组值(Dog、Cat)。
  2. 提取对应列的非空值:以I2(对应原A列)为例,输入公式:
    =TEXTJOIN("",TRUE,IF($A$2:$A$7=H2,$B$2:$B$7,""))
    
    Excel 365直接回车即可,旧版需按Ctrl+Shift+Enter作为数组公式,之后横向、下拉填充到所有列。该公式会自动拼接当前分组下该列的所有非空值,适配你数据中每列仅一个非空值的场景。

二、Python实现方案(适合复杂逻辑扩展)

如果后续需要调整处理逻辑,用Pandas可以快速完成:

import pandas as pd

# 读取Excel数据
df = pd.read_excel("你的数据文件路径.xlsx")

# 按第一列分组,聚合时保留每列非空值(max忽略空值,适配单非空场景)
merged_df = df.groupby(df.columns[0], as_index=False).max()

# 若某列存在多个非空值需要拼接,替换为以下聚合逻辑:
# merged_df = df.groupby(df.columns[0], as_index=False).agg(lambda x: ", ".join(x.dropna().unique()))

# 保存结果到新Excel文件
merged_df.to_excel("合并结果.xlsx", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:10:29