如何依据B列匹配结果对A列特定行值进行分组合并
实现特定条件下的单元格合并需求
原始数据
| A | B |
|---|---|
| K1 | 12 |
| K2 | 12 |
| S1 | 12 |
| K3 | 9 |
| K1 | 8 |
| K2 | 10 |
需求概述
- 仅合并K1和K2对应的行:当二者B列值均为12时,将A列合并为
K - S1不可合并,字母前缀为核心判断依据
- 原始数据不可直接修改,仅允许通过“拆分列后修复再合并”的方式处理
可行方案
方案1:Excel辅助列(无原始数据修改)
- 添加辅助列
C,标记合并后的值:
在C2单元格输入公式,下拉填充至所有行:=IF(AND(LEFT(A2,1)="K",RIGHT(A2,1)<>"3",B2=12),IF(COUNTIFS($A$2:$A$7,"K*",$B$2:$B$7,12)=2,"K",A2),A2) - 添加辅助列
D,去重保留唯一行:
在D2单元格输入公式,下拉填充后筛选D列非空值:
最终筛选结果即为目标表格。=IF(COUNTIF($C$2:C2,C2)=1,C2,"")
方案2:Power Query(无原始数据修改)
- 导入数据到Power Query:选中数据区域 → 「数据」选项卡 → 「从表格/区域」
- 添加自定义列提取字母前缀:
前缀 = Text.Start([A], 1) - 添加自定义列标记合并值:
合并标记 = if [前缀] = "K" and [A] <> "K3" and [B] = 12 then "K" else [A] - 按
合并标记和B列分组去重:
选中合并标记和B列 → 「转换」选项卡 → 「分组依据」→ 新列名设为A,操作选「行」,聚合选「任意行」,展开后保留A.合并标记和B列 - 调整列名后加载回Excel,得到目标表格:
| A | B |
|---|---|
| K | 12 |
| S1 | 12 |
| K3 | 9 |
| K1 | 8 |
| K2 | 10 |
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

