我正在使用FILTER()从表格2中显示Name列匹配的值。

我的问题是我想要的位置:

=FILTER(Sheet2!A:F, Sheet2!A:A="Combat Medic" OR Sheet2!A:A="Universal")


OR导致错误。

正确的语法是什么?
我必须改用QUERY()吗?

评论

您可能还会发现这很有用:Google Spreadsheets:按数组过滤范围

#1 楼

使用以下公式来获取所需的查询。

公式

=FILTER(A:A;(A:A="Combat Medic")+(A:A="Universal"))


解释了

在引用中Ahab解释说+*可以用作布尔表达式,例如ORAND

在这种情况下,使用IFERROR的解决方案(请参阅修订历史记录)是没有用的,除非您要查找特定的字符串:

=FILTER(Sheet2!A:F;IFERROR(FIND("Combat";A:A);0) + IFERROR(FIND("Uni";A:A);0))


此处未找到任何内容时,IFERROR返回0,导致公式仍然起作用。

屏幕截图



示例

我修改了示例文件以包含两种解决方案:使用布尔值过滤

参考文献

Google产品论坛,布尔表达式

评论


有趣!您能否详细说明IFERROR(...)+ IFERROR(...)的工作原理?

– Vidar S. Ramdal
13年11月27日在12:16

可以将“ +”用作布尔OR的文档在哪里?

–克里斯·莫里斯(Chris Morris)
15年8月25日在12:57

@ChrisMorris:productforums.google.com/d/msg/docs/8nStFrjgO5Q/S0ppgEicgcAJ

–雅各布·扬·图恩斯特拉(Jacob Jan Tuinstra)
15年8月25日在12:59

@JacobJanTuinstra谢谢雅各。有官方文件吗?

–克里斯·莫里斯(Chris Morris)
15年8月25日在13:17

#2 楼

=FILTER(A:F, REGEXMATCH(A:A, "Combat Medic|Universal"))





=QUERY(A:F, " where A matches 'Combat Medic|Universal'", 0)