检查多个列和值的 FILTER 函数

检查多个列和值的 FILTER 函数

我有两张工作表:一张包含原始数据,另一张我想在其中仅过滤掉感兴趣的行。在原始数据表中,我有两列需要过滤(例如,列 B 和 C)。列 B 仅是“是/否”。列 C 中的单元格有 26 个唯一值可供选择(例如,“A”到“Z”)。

原始数据示例(表 1):

可乐 胶束B 科尔 寒冷的
名称_1 是的 A 更多数据
名称_2 更多数据
名称_3 是的 更多数据
名称_4 是的 G 更多数据

过滤器示例(第 2 页,所需):

可乐 胶束B 科尔 寒冷的
名称_1 是的 A 更多数据
名称_4 是的 G 更多数据

在上面的例子中,我想过滤掉只有 B 号上校回答“是”, 和仅来自 Col C 的 {A, B, C, G, H, J}。我该怎么做?

我尝试过类似的事情:

=FILTER(Sheet1!$A:$K, AND(Sheet1!$B:$B="Yes", ISNUMBER(MATCH(Sheet1!$G:$G,Lookup!$A$2:$A$7,0))), "No Rows Found")

其中 'Lookup' 是包含以下内容的工作表:

查找值
A
C
G
H
J

我一直得到#VALUE!任何帮助都将不胜感激。

答案1

不要使用函数AND()中的函数FILTER(),而要使用*运算符AND()

在此处输入图片描述


=FILTER(Sheet1!A2:D5,(1-ISNA(XMATCH(Sheet1!C2:C5,LOOKUP!A2:A7)))*(Sheet1!B2:B5="Yes"))

不要使用整个范围,而是使用Structured ReferencesakaTables仅选择所需的范围。


或者,如果你不愿意使用Structured Referencesaka,Tables那么使用以下方法来获取_LastRow,在下面的公式中,我假设Column A将有一个值,并且可以作为索引列_LastRow

在此处输入图片描述


=LET(
     _LastRow, MATCH(2,1/(Sheet1!A:A<>"")),
     _Data, Sheet1!A2:INDEX(Sheet1!A:D,_LastRow,),
     _CriteriaOne, (INDEX(_Data,,2)="Yes"),
     _CriteriaTwo, 1-ISNA(XMATCH(INDEX(_Data,,3),LOOKUP)),
     FILTER(_Data,_CriteriaOne*_CriteriaTwo,"No Rows Found"))

  • _LastRow--> 变量使用函数返回数据范围的最后一行MATCH()
  • _Data--> 使用变量_LastRow从中提取整个数据Sheet1INDEX()
  • _CriteriaOne-->Boolean对 B 列进行逻辑检查以查看是否如此Yes
  • _CriteriaTwo--> 与 Sheet 进行精确匹配LOOKUP以找到所需的匹配项。
  • 最后,使用FILTER()返回输出,在执行Boolean操作后返回True1所有匹配项。否则它将返回No Rows Found

笔记: LOOKUPLOOKUP Sheet指的是-->中定义的命名范围=LOOKUP!$A$2:$A$7,下面是一份 Excel 文档下载


相关内容