如何将Excel的FILTER函数结果与数字提取公式合并?
合并Excel FILTER与数字提取功能的实现方案
完全可以将FILTER函数的结果与数字提取逻辑合并到同一个函数中,无需分开处理。以下是两种需求对应的合并公式:
提取左侧数字的合并公式
直接将提取逻辑嵌套在FILTER返回的数组上,公式如下:
=INT(IF(ISNUMBER(SEARCH("/", FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1))), LEFT(FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1), SEARCH("/", FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1))-1), FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1)))
如果你的Excel版本是365/2021及以上,推荐用LET函数简化重复的FILTER调用,让公式更易读:
=LET(filtered, FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1), INT(IF(ISNUMBER(SEARCH("/", filtered)), LEFT(filtered, SEARCH("/", filtered)-1), filtered)))
该公式先筛选出目标数据,再逐个判断结果是否包含/:若包含则提取左侧文本转为整数,否则直接将内容转为整数,最终得到你需要的左侧数字结果。
提取右侧数字的合并公式
同理,将提取右侧数字的逻辑嵌套进去:
=INT(IF(ISNUMBER(SEARCH("/", FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1))), RIGHT(FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1), LEN(FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1))-SEARCH("/", FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1))), FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1)))
用LET简化后的版本:
=LET(filtered, FILTER($D2:$D, $A2:$A=$A9, $E2:$E=$A1), INT(IF(ISNUMBER(SEARCH("/", filtered)), RIGHT(filtered, LEN(filtered)-SEARCH("/", filtered)), filtered)))
这个公式会对筛选后的每个结果,提取/右侧的文本转为整数;无/的内容则直接转为整数,得到你需要的右侧数字结果。
内容的提问来源于stack exchange,提问作者King Reload
相关产品推荐
相关产品推荐

