是否有可能在Excel中使用AND / OR在多个列之间创建过滤器,或者建议采用哪种方法?例如:
WHERE
(Name = "Tom" AND country in ['US', 'CA'])
OR
(Age > 14 and country not in ['FR', 'DE'])
如果没有,通常如何在Excel中执行类似SQL的过滤子句,或者对于Excel来说,这是否被认为是一种极端情况?
您可以尝试:
=OR(AND(Name="Tom", OR(country="US", country="CA")),
AND(Age > 14, AND(country<>"FR", country<>"DE")))
诀窍是将AND
/ OR
与Excel一起使用需要嵌套逻辑,这与SQL的执行方式不同。
您可以用包含该特定数据的实际Excel单元格替换Name
和country
。
在Excel中,AND
和OR
是函数。参见Excel / Formulas and functions。
示例:
=OR(AND(B2="Tom", OR(B3="US", B3="CA")), AND(B4>14, B3<>"FR", B3<>"DE")))
使用新的动态数组公式(在大多数版本的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")))