如何在Google Sheets中合并每人的多个社团条目且不覆盖原有数据?
Google Sheets 实现姓名匹配后追加社团信息(避免覆盖)
方法1:同一单元格合并所有社团信息(用分隔符分隔)
用TEXTJOIN+FILTER组合,直接把匹配到的所有社团信息拼接成字符串,不会覆盖原有内容。
假设你的:
- 社团登记表表名为
社团登记表,列对应:A=名字,B=姓氏,C=社团名称,D=日期标识 - 汇总表中,当前行的名字在
A2,姓氏在B2
在汇总表的目标单元格输入公式:
=TEXTJOIN(",", TRUE, FILTER(社团登记表!C:C&"("&社团登记表!D:D&")", 社团登记表!A:A=A2, 社团登记表!B:B=B2))
TEXTJOIN(",", TRUE, ...):用中文逗号分隔结果,自动忽略空值社团登记表!C:C&"("&社团登记表!D:D&")":把社团名称和日期拼接成「足球社(周一)」的格式FILTER(..., 社团登记表!A:A=A2, 社团登记表!B:B=B2):筛选出当前姓名匹配的所有社团记录
下拉公式即可批量处理所有人员。
方法2:逐列拆分显示每个社团信息(不同单元格)
如果希望每个社团信息单独占一个单元格,用INDEX+SMALL组合提取第N个匹配项,向右拖动即可依次显示所有社团。
在汇总表的第一个社团列(比如C2)输入公式:
=IFERROR(INDEX(社团登记表!C:C&"("&社团登记表!D:D&")", SMALL(IF((社团登记表!A:A=A2)*(社团登记表!B:B=B2), ROW(社团登记表!C:C)-1), COLUMN(A1))), "")
- 输入完成后按
Ctrl+Shift+Enter(Google Sheets部分版本直接回车即可)触发数组计算 SMALL(IF(...), COLUMN(A1)):依次提取第1、2、3...个匹配的行号IFERROR(..., ""):没有更多社团时显示空单元格
向右拖动该单元格的填充柄,就能依次显示当前人员的所有社团信息,不会出现覆盖问题。
内容的提问来源于stack exchange,提问作者Sikai Zhang
相关产品推荐
相关产品推荐

