如何按家庭汇总成员受邀活动数据?
按家庭维度汇总受邀活动并排序的实现方案
以下是针对Excel和Google Sheets的具体实现方法,适配你已按家庭排序、首行对应户主的表格结构:
Excel 实现方法
假设你的表格结构为:
- A列:家庭标识(户主,同一家庭的成员此列值相同)
- B列:家庭成员
- C列:受邀活动
- 首行为表头,数据从第2行开始
仅在户主行显示家庭活动汇总
在D2单元格输入以下公式,下拉填充即可:
=IF(A2<>A1, TEXTJOIN(", ", TRUE, SORT(UNIQUE(FILTER($C$2:$C$100, $A$2:$A$100=A2)))), "")
公式拆解:
FILTER($C$2:$C$100, $A$2:$A$100=A2):筛选出当前家庭的所有受邀活动UNIQUE():去除重复的活动项SORT():将活动按字母顺序排序TEXTJOIN(", ", TRUE, ...):用「逗号+空格」拼接所有活动,自动忽略空值IF(A2<>A1, ..., ""):仅在家庭首行(户主行)显示汇总结果,其他行留空
批量生成所有家庭的独立汇总
如果需要单独生成一份仅包含户主和对应活动汇总的表格:
- 在新工作表的A2输入
=UNIQUE(原表!A2:A100)提取所有唯一户主 - 在B2输入
=TEXTJOIN(", ", TRUE, SORT(UNIQUE(FILTER(原表!C2:C100, 原表!A2:A100=A2)))),下拉填充
Google Sheets 实现方法
逻辑和Excel一致,公式略有简化:
户主行显示汇总
在D2单元格输入:
=IF(A2<>A1, TEXTJOIN(", ", TRUE, SORT(UNIQUE(FILTER(C:C, A:A=A2)))), "")
也可以用QUERY函数实现:
=IF(A2<>A1, TEXTJOIN(", ", TRUE, SORT(UNIQUE(QUERY(A:C, "select C where A='"&A2&"'")))), "")
注意事项
- 替换公式中的数据范围(如
$C$2:$C$100)为你实际的表格数据区间 - 若活动名称存在大小写差异,可嵌套
UPPER/LOWER/PROPER统一格式,例如:SORT(UNIQUE(FILTER(PROPER($C$2:$C$100), $A$2:$A$100=A2))) - 确保A列的家庭标识(户主)是同一家庭的唯一判定依据,避免分组错误
内容的提问来源于stack exchange,提问作者asd
相关产品推荐
相关产品推荐

