如何将Excel中FILTER函数输出的重复值替换为空白行
实现Excel筛选后地址仅首次显示、后续重复留空的动态数组公式
解决方案公式
假设你的地址列是H列,住户姓名列是I列,道路匹配列是N列,下拉框选择单元格为P1,可以使用以下动态数组公式:
=IFERROR(LET( filtered_data, FILTER(H:I, N:N=P1), total_rows, ROWS(filtered_data), row_sequence, SEQUENCE(total_rows), address_list, INDEX(filtered_data,,1), name_list, INDEX(filtered_data,,2), unique_address_col, IF( COUNTIF(INDEX(address_list,1,1):INDEX(address_list,row_sequence-1,1), address_list)=0, address_list, "" ), HSTACK(unique_address_col, name_list) ), "")
公式说明
LET函数:定义变量简化公式结构,提升可读性filtered_data:筛选出N列匹配P1所选道路的地址、姓名行数据row_sequence:生成筛选结果的行号序列(从1到结果总行数)address_list/name_list:分别提取筛选结果中的地址列和姓名列
unique_address_col:通过COUNTIF统计当前行地址在之前行的出现次数,仅首次出现时显示地址,后续重复地址替换为空HSTACK:将处理后的地址列与姓名列合并为二维数组,自动填充所有行IFERROR:无匹配结果时返回空值,避免显示#CALC!错误
自定义适配
如果你的地址、姓名列位置不同,只需调整以下部分:
- 修改
FILTER(H:I, ...)中的列范围,包含你的地址和姓名列 - 调整
INDEX(filtered_data,,1)的列号(1代表地址在筛选结果的第1列) - 调整
INDEX(filtered_data,,2)的列号(2代表姓名在筛选结果的第2列)
内容的提问来源于stack exchange,提问作者Michael Howard-Sorrell
相关产品推荐
相关产品推荐

