Excel 365按规则筛选表名并提取对应数据的公式实现方法
Excel 365 实现方案
直接使用动态数组公式一次输出所有符合条件的结果,无需手动下拉填充:
前置假设
- 三列原始数据对应范围:
Table_Name列在A2:A116000,Size_MB列在B2:B116000,Session_Num列在C2:C80000,表头在第1行 - 可根据实际数据范围调整公式中的单元格范围
实现公式
找任意空白单元格(比如E2,E1、F1可提前手动输入表头Table_Name、Size_MB)输入以下公式即可自动溢出所有符合条件的两列结果:
=FILTER(A2:B116000,COUNTIF(C2:C80000,IFERROR(--TEXTAFTER(A2:A116000,"_",-1),""))>0,"无符合条件的记录")
公式说明
TEXTAFTER(A2:A116000,"_",-1):提取每个Table_Name最后一个下划线后的内容,就是需要匹配的Session_Num值--:将提取到的文本格式的数字转为数值格式,适配Session_Num为数字格式的场景,如果你的Session_Num是文本格式,直接删掉这两个减号即可IFERROR(..., ""):容错处理,过滤掉名称中不含下划线的无效记录,避免公式报错COUNTIF(...)>0:判断提取到的后缀值是否存在于Session_Num列中FILTER:直接返回符合条件的Table_Name和Size_MB两列数据
超级表优化方案
如果你已经将原始数据转换为Excel超级表(推荐,后续新增数据时公式无需手动调整范围),假设超级表名为Table1,可使用更简洁的公式:
=FILTER(CHOOSECOLS(Table1,1,2),COUNTIF(Table1[Session_Num],IFERROR(--TEXTAFTER(Table1[Table_Name],"_",-1),""))>0,"无符合条件的记录")
内容的提问来源于stack exchange,提问作者Aarie
相关产品推荐
相关产品推荐

