Google Sheets 如何筛查列ID并返回其多次关联的Date、Value(无需拖拽公式)
Google Sheets 动态汇总ID关联值的实现方法
核心溢出公式
仅需在结果起始单元格(如新建工作表的A1)输入以下公式,无需下拉、右拉拖拽填充,所有内容自动溢出更新:
=LET( raw_ids, FILTER(A2:A, A2:A<>""), raw_dates, B2:B, raw_values, C2:C, unique_ids, UNIQUE(raw_ids), max_repeat, MAX(COUNTIF(raw_ids, raw_ids)), header, HSTACK("ID", "Date", "Value", IF(SEQUENCE(1, (max_repeat-1)*2), "")), body, BYROW( unique_ids, LAMBDA(id, LET( match_mask, raw_ids = id, matched_dates, FILTER(raw_dates, match_mask, ""), matched_values, FILTER(raw_values, match_mask, ""), FLATTEN(HSTACK(matched_dates, matched_values)) ) ) ), VSTACK(header, HSTACK(unique_ids, body)) )
公式适配说明
- 自动提取不重复ID:通过
UNIQUE(raw_ids)实现,原数据新增ID时,结果表会自动新增对应行 - 自动匹配列数:通过
MAX(COUNTIF(raw_ids, raw_ids))统计单个ID的最大出现次数,自动拓展右侧列数,无需提前预设列数,支持任意次数的关联记录汇总 - 自动汇总关联值:对每个ID自动筛选所有匹配的Date、Value对,通过
HSTACK+FLATTEN将多组纵向记录交错拍平为横向排布,和示例效果完全一致
注意事项
- 公式覆盖的结果区域不要手动输入内容,否则会阻断自动溢出更新
- 原数据的日期、数字、文本格式会被完整保留,不会被强制转换为纯文本
- 若原数据不在当前工作表,只需将公式开头的
raw_ids、raw_dates、raw_values对应的范围修改为实际位置,格式为'目标工作表名'!对应列范围
内容的提问来源于stack exchange,提问作者Michel Rickhaus
相关产品推荐
相关产品推荐

