领导突然要求:“把表格里所有姓‘王’的人的姓名和电话列出来!”但你的表格列顺序经常变——今天“联系电话”在第8列,明天可能跑到第3列手动改公式列号?太麻烦!效率直接打骨折……
FILTER函数 动态匹配,3分钟解决数据筛选难题!无论是固定列还是动态需求,1个公式全搞定, 别再手动翻表格,效率翻倍就靠它!
场景1:仅显示姓名列(姓“王”的人员)
场景描述:表格中需要快速提取所有姓名含“王”的人员名单。
FILTER(显示筛选结果,筛选条件)
具体公式:
=FILTER(A1:A31, ISNUMBER(FIND("王", A1:A31)))
这里只提取姓名,其他列的信息不需要。
我们只需把FILTER函数的第一参数(显示筛选结果):只要选第A列姓名范围A1:A31即可。
场景2:显示全部列(姓“王”的人员完整信息)
场景描述:领导需要姓“王”员工的所有信息,显示筛选结果列跟原表格的列的顺序是一致的。
具体公式:
=FILTER(A1:H31, ISNUMBER(FIND("王", A1:A31)))
FILTER函数的第一参数:范围要扩大到整个表格数据范围A1:H31。
场景3:手动选择部分列(姓名 电话 专业)
场景描述:只需提取“姓名、性别、专业、电话”4列。
具体公式:
=FILTER(CHOOSECOLS(A2:H31, 1,2,7,8), ISNUMBER(FIND("王", A2:A31)))
只需要部分列,CHOOSECOLS(A2:H31, 1,2,7,8)手动筛选出想要查找的列。
注意事项:
(1)列顺序:数字按原始表格顺序,调整数字可改变输出列顺序。
(2)列数限制:Excel 365支持CHOOSECOLS,旧版本需用INDEX替代。
4:自动匹配列(动态选择“姓名 电话”)
终极动态公式,列怎么变都能精准抓取!
场景描述:表格列数经常变动,手动输入会有出错的风险,需动态匹配。
=CHOOSECOLS(FILTER($A$1:$H$13,ISNUMBER(FIND("王",$A$1:$A$13))),MATCH(L$1,$A$1:$H$1,0))
第一参数:FILTER($A$1:$H$13,ISNUMBER(FIND("王",$A$1:$A$13))),先把所有的满足条件的信息都筛选出来。
第二参数:MATCH(L$1,$A$1:$H$1,0),在 $A$1:$H$1 区域内查找与 L$1 匹配的列标题,返回匹配列的相对位置(例如,第 1 列、第 2 列等)
CHOOSECOLS返回筛选后的数据中,指定列的数据。
为什么这个公式能“动态适应”?
(1)MATCH函数:自动扫描标题行,无论“联系电话”列怎么移动,都能返回正确列号;
(2)CHOOSECOLS:根据MATCH的结果,像GPS一样锁定目标列;
(3)FILTER:最后根据“王”字条件,一键筛出最终数据。
即使明天列顺序全乱,公式也照常运行!
无论领导怎么折腾表格结构,你只需1个公式,10秒交差
从此告别“改列号→崩溃→加班”的死循环!
评论 (0)