find包含4个特定值的所有行?
我正在使用Excel,我有一个从A到F 6列的数字表和超过1000行。 例如,从我的桌子上,
4 17 37 38 47 53
8 43 54 55 56 60
4 18 21 25 38 57
15 25 37 38 58 59
4 16 19 20 27 43
18 32 47 50 54 56
我想查找是否至less有一行( 它必须是一行! )包含数字16 19 20 27.从这个例子中,有一个匹配,但我不知道如何进行search或公式使用四个不同的数字。
我觉得我需要使用匹配function,但不能完全弄清楚,我不确定。 有谁知道如何做到这一点?
谢谢!
这应该工作:
=IF(AND(OR(A1=16,B1=16,C1=16,D1=16,E1=16,F1=16),OR(A1=19,B1=19,C1=19,D1=19,E1=19,F1=19),OR(A1=20,B1=20,C1=20,D1=20,E1=20,F1=20),OR(A1=27,B1=27,C1=27,D1=27,E1=27,F1=27)),"Yes","No")
把它放在表格中的新列。 如果该行包含所有4个值,则返回Yes
,否则返回No
然后,您可以过滤“是/否”的新列来search“是”行
我把你正在寻找的四个值放在I1:L1
和要在A1:F#
search的数据数组中。 然后在G
列创build一个帮助列,将A:F
连接成一个分隔string。 G1
的公式是:
=":"&A1&":"&B1&":"&C1&":"&D1&":"&E1&":"&F1&":"
我用“:”作为分隔符(可以使用任何不在数据中的字符)。
G1
的结果是:
:4:17:37:38:47:53:
现在在H1
使用这个公式来search:
=NOT(ISERR(FIND(":"&$I$1&":",G1)*FIND(":"&$J$1&":",G1)*FIND(":"&$K$1&":",G1)*FIND(":"&$L$1&":",G1)))
如果find值(带前导分隔符和尾随分隔符),则每个FIND
将返回一个INT,并且#VALUE! 除此以外。 因此,如果find所有值,产品将是INT,并且#VALUE! 除此以外。 在ISERR
包含FINDs
会使结果更漂亮(TRUE / FALSE,而不是#VALUE!),而当所有4个值都find时, NOT
反转返回TRUE,否则返回FALSE。
希望有所帮助。
这是另一种方式 – 更优雅(没有帮手列)。 和以前一样,我把你正在寻找的四个值放在I1:L1
并且在A1:F#
search数据的数组。 然后在G
列使用这个ARRAY公式(CTRL-SHIFT-ENTER):
=NOT(OR(PRODUCT(A1:F1-$I$1)<>0,PRODUCT(A1:F1-$J$1)<>0,PRODUCT(A1:F1-$K$1)<>0,PRODUCT(A1:F1-$L$1)<>0))
每个PRODUCT
术语检查是否存在一个值,并在find该值时返回0
,否则返回非零值。 四个PRODUCT
术语中的每一个的结果都用<>0
进行testing,如果未find值,则返回TRUE。 然后如果找不到一个或多个值,则返回TRUE,如果全部find则返回FALSE。 该结果被封装在一个NOT中,以便在find所有四个值时,函数结果为TRUE。