查看列中是否存在数组中的任何值(excel)

时间:2014-06-05 16:37:49

标签: excel indexing match vlookup

我有一个包含30列和800行(工作表1)的数组,每个单元格都有文本或空白。我想检查一个列(Custody List Hedge)中是否存在此数组中的任何值(特定是逐行):

示例:

表1:

 ASKF    AQA6               
 ARO3    ASKD    AQA5           
 ASKA    ARMA    ARNA    ARMB    ARBA   
 ARMV    ARN6    ARNS    ARO6    AQFS   
 ARQ4    ARMJ    ARN4    ARNJ    ARO4    ARBJ

保管名单对冲:

妇幼保健基金编号

BWTZ
AEGF
AEGH
AEGJ
AEGL
AEGM
AEGP

我已经尝试过计数,匹配索引,vlookups,但似乎没有什么真正起作用。我不想使用VBA。我知道这可以通过循环完成,但必须有一个函数设置来执行此操作。到目前为止,我尝试了这个,但我不认为它每次都有效,不知道为什么......

= INDEX('Sheet 1'!D:AE,MATCH('监管清单 - 对冲'!A3,'监管清单 - 对冲'!A:A,0),1)

1 个答案:

答案 0 :(得分:0)

为此,我将文本搜索到 A1 F5 ,并在 A11 中搜索到的代码A17

首先,我们需要FIND字符串中的文字:FIND($A$11:$A$17,A1:F1)

接下来,我们需要意识到我们需要这个需要是一个数组公式(否则它只会检查A11和A1)
当我们实际完成构造公式时,使用 CTRL + SHIFT + ENTER 来完成 这会产生一个类似于#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;1

的列表

现在我们将其转换为告诉我们文本是否被发现的内容 这些值由ISERROR转换为TRUE;TRUE;TRUE;TRUE;TRUE;FALSE

然后我们交换这些值,所以如果找到则为TRUE,否则为FALSE,NOT,将所有内容反转为FALSE;FALSE;FALSE;FALSE;FALSE;TRUE

接下来,我们将这些转换为我们可以使用--添加的数字。这是将TRUE转换为1并将FALSE转换为0的技巧。然后我们有0;0;0;0;0;1

最后,我们对数字进行求和,然后告诉我们在您搜索的字符串中找到了多少单词

这将构建一个如下所示的最终公式:

{=SUM(--(NOT(ISERROR(FIND($A$11:$A$17,A1:F1)))))}

(花括号{}会告诉您输入的数组公式)

然后,您可以针对 0 测试此内容,找不到任何内容,> 0 查找找到的单词