如何修改Excel公式实现同时查找包含13或12的单元格?
正确修改公式的方法
你的问题出在不能直接把OR函数嵌套进SEARCH的第一个参数——SEARCH需要单个查找文本,OR返回的是布尔值,不符合它的参数要求;而且SEARCH找不到内容时会返回错误值,直接使用会干扰FILTER的判断逻辑。
正确的做法是分别用SEARCH查找“13”和“12”,再用ISNUMBER把结果转换成布尔值(找到返回TRUE,没找到返回FALSE),最后用OR把两个条件组合起来。
修改后的完整公式:
=LET( data, TRANSPOSE(FILTER('Arbor Feed Tutor List'!A:A, OR(ISNUMBER(SEARCH("13", 'Arbor Feed Tutor List'!A:A)), ISNUMBER(SEARCH("12", 'Arbor Feed Tutor List'!A:A)) ))), IFNA(REDUCE(TOROW(,1), SEQUENCE(COLUMNS(data)), LAMBDA(a,i, HSTACK(a, INDEX(data,,i), "HP's", INDEX(data,,i), INDIRECT(ADDRESS(ROW(), COLUMN()+1)) )) )) )
关键修改点说明:
- 用
ISNUMBER(SEARCH("13", 单元格区域))判断单元格是否包含“13”,ISNUMBER(SEARCH("12", 单元格区域))判断是否包含“12”——SEARCH找到文本返回位置数字,ISNUMBER把数字转为TRUE,未找到时的错误值转为FALSE - 用
OR(条件1, 条件2)组合两个判断,只要满足其中一个条件,单元格就会被FILTER筛选出来 - 也可以用加法替代OR(
ISNUMBER(...) + ISNUMBER(...) > 0),效果完全一致——Excel中TRUE等价于1,FALSE等价于0,和大于0即表示至少满足一个条件
内容的提问来源于stack exchange,提问作者J Dallimore
相关产品推荐
相关产品推荐

