excel查找、去重、合并综合使用公式求助

高分请问一下,excel查找、去重、合并综合使用公式求助?

F列的类型是固定的,需要根据F的值去D列查找,然后把对应的C列中的姓名去重合并显示在G里的同一个单元格中,我不想通过数据透视表去做,看看哪位大神有办法帮助一下
最新回答
璎婲

2024-11-23 14:19:11

  • 用函数CONCAT+UNIQUE+INDEX组合处理的方法,可能解决你的问题。下面是实战操作。使用OFFICE2021.

  • G2公式:=CONCAT(UNIQUE(IFERROR(INDEX($C$2:$C$16,IF($D$2:$D$16=F2,ROW($1:$15),4^8),1),"")))

  • 简单解释:

  1. 先用INDEX按条件查询到符合数据,放在本列1到15行中。

  2. 这一步稍微复杂一些。

  • 筛选条件一的处理方法。IF($D$2:$D$16=F2,ROW($1:$15),4^8),在D列中找出与F2匹配的所有行号,如果不匹配,就等于最大行号。4^8是4的8次方,等于65536,正是一个表格的最大行数。

  • 筛选条件二的处理方法。INDEX($C$2:$C$16,IF($D$2:$D$16=F2,ROW($1:$15),4^8),1),这是条件之二。意思是,如果在D列中找到与F2匹配的行,就把C列对应行的值取出,放在G列。

  • IFERROR(INDEX($C$2:$C$16,IF($D$2:$D$16=F2,ROW($1:$15),4^8),1),"")如果不匹配,就把这些项隐藏起来。

  • UNIQUE(),是高版本的函数,功能是把某单元格区域,数组,文本等相关数据去掉重复项。

  • concat(),用来连接某单元格区域字符串的函数。这里用到它,主要是完成上一步去重后各行数据的合并。

  • 当然,以上处理后,单元格中的值 是不换行的。需要设置单元格格式,调整列宽,才能实现。

  • 另外,因为这里姓名全是单名,如果是三个字或更多的字构成的姓名,最后一步处理不一定完美。只能改用其它方法或VBA来实现。

枕头说它不想醒

2024-11-23 12:37:44

EXCEL2021版,在G2中输入或复制粘贴下列公式

=TEXTJOIN(CHAR(10),,UNIQUE(FILTER(C:C,D:D=F2)))

下拉填充

选择G列,单击“自动换行”图标

辞慾

2024-11-23 08:55:49

原则上是不能实现的,公式计算结果不可能出现换行数据
陌上初安

2024-11-23 17:02:43

不想用数据透视表的话,就写段代码吧,公式处理起来,数据多的话就卡起卡起的。
风夏了白雪

2024-11-23 16:29:30

如果版本较低且会使用代码的自定义函数,可以免费提供代码。需要的话请追问。