我正在使用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
我想找到是否至少有一行(必须是一行!),其中包含数字16 19 20 27.从这个例子中,有一个匹配,但我不知道不知道如何使用四个不同的数字来制作搜索或公式。
我觉得我需要使用匹配功能,但无法弄清楚它并且我不确定。有谁知道怎么做?
谢谢!
答案 0 :(得分:1)
这应该有效:
=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
。然后,您可以过滤新的是/否列,以搜索Yes
答案 1 :(得分:0)
我将您要搜索的四个值放在I1:L1
中,并在A1:F#
中搜索要搜索的数据数组。然后在列G
中创建一个帮助列,将A:F
连接成一个分隔的字符串。 G1
中的公式为:
=":"&A1&":"&B1&":"&C1&":"&D1&":"&E1&":"&F1&":"
我使用“:”作为分隔符(你可以使用你数据中没有的任何字符)。
G1
中的结果是:
:4:17:37:38:47:53:
现在在H1
中使用此公式进行搜索:
=NOT(ISERR(FIND(":"&$I$1&":",G1)*FIND(":"&$J$1&":",G1)*FIND(":"&$K$1&":",G1)*FIND(":"&$L$1&":",G1)))
如果找到值(带有前导和尾随分隔符)并且#VALUE,则每个FIND
将返回一个INT!除此以外。因此,如果找到所有值并且#VALUE,则该产品将是INT!除此以外。将FINDs
包含在ISERR
内会使结果更漂亮(TRUE / FALSE而不是#VALUE!),并且当找到所有4个值时,使用NOT
反转返回TRUE,否则返回FALSE。 / p>
希望有所帮助。
答案 2 :(得分:0)
这是另一种方式---更优雅(没有辅助列)。和以前一样,我将您要搜索的四个值放在I1:L1
中,并在A1:F#
中搜索要搜索的数据数组。然后在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
项检查是否存在一个值,并在找到值时返回0
,否则返回非零值。使用PRODUCT
测试四个<>0
项中的每一个的结果,如果找不到值,则返回TRUE。然后,如果找到一个或多个值 ,则返回TRUE,如果找到 all ,则返回FALSE。该结果包含在NOT中,以便在找到所有四个值时函数结果为TRUE。