Excel中使用AND / OR嵌套的复杂过滤器

问题描述 投票:1回答:3

是否有可能在Excel中使用AND / OR在多个列之间创建过滤器,或者建议采用哪种方法?例如:

 WHERE
 (Name = "Tom" AND country in ['US', 'CA']) 
    OR 
 (Age > 14 and country not in ['FR', 'DE'])

如果没有,通常如何在Excel中执行类似SQL的过滤子句,或者对于Excel来说,这是否被认为是一种极端情况?

sql excel
3个回答
1
投票

您可以尝试:

=OR(AND(Name="Tom", OR(country="US", country="CA")),
    AND(Age > 14, AND(country<>"FR", country<>"DE")))

诀窍是将AND / OR与Excel一起使用需要嵌套逻辑,这与SQL的执行方式不同。

您可以用包含该特定数据的实际Excel单元格替换Namecountry


1
投票

在Excel中,ANDOR是函数。参见Excel / Formulas and functions

示例:

=OR(AND(B2="Tom", OR(B3="US", B3="CA")), AND(B4>14, B3<>"FR", B3<>"DE")))


1
投票

使用新的动态数组公式(在大多数版本的Office 365中可用),可以使用Filter()函数对列表进行筛选,并且结果显示在列表之外。

屏幕快照显示了Tim Biegeleisen的公式,该公式具有条件格式,以在过滤该列上的表之前突出显示TRUE值。紧随其后的是单元格H2中<< ONE >>公式的结果,该公式已自动向右和向下溢出。为了便于识别,我添加了一个索引列。请注意,AND逻辑是使用乘法运算符构建的,而OR逻辑则使用加法运算符。

=FILTER(Table1, ((Table1[Name]="Tom")*((Table1[Country]="US")+(Table1[Country]="CA")))+ ((Table1[Age]>14)*(Table1[Country]<>"FR")*(Table1[Country]<>"DE")))

enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.