Excel 在多个列中搜索另一列中包含的文本,返回值

Excel 在多个列中搜索另一列中包含的文本,返回值,excel,excel-formula,Excel,Excel Formula,如果这是一个愚蠢的问题,或者以前有人问过,我道歉,但我已经搜索了所有地方,没有找到类似的问题/解决方案。我需要在两个可能的列(A和B)中查找另一列(E)中包含的文本。如果在E列中找到A列或B列中包含的文本,我需要C列中的值出现在F列中 A列和B列中的文本将与E列中的文本不同(如果是,我就不会问这个问题)。B列中可能有数据,也可能没有数据(不确定这是否增加了复杂性,但只是为了清楚起见) 我尝试过索引(匹配)和ISNUMBER(搜索)的各种组合,但都没有用。我很确定有一个简单的解决方案。任何帮助都将

如果这是一个愚蠢的问题,或者以前有人问过,我道歉,但我已经搜索了所有地方,没有找到类似的问题/解决方案。我需要在两个可能的列(A和B)中查找另一列(E)中包含的文本。如果在E列中找到A列或B列中包含的文本,我需要C列中的值出现在F列中

A列和B列中的文本将与E列中的文本不同(如果是,我就不会问这个问题)。B列中可能有数据,也可能没有数据(不确定这是否增加了复杂性,但只是为了清楚起见)

我尝试过索引(匹配)和ISNUMBER(搜索)的各种组合,但都没有用。我很确定有一个简单的解决方案。任何帮助都将不胜感激


不确定是否有更简单的方法,但通过一些验证,您可以很容易地得出如下结论

=IF(OR(IF(A3<>"",ISNUMBER(SEARCH(A3,E3)),FALSE),IF(B3<>"",ISNUMBER(SEARCH(B3,E3)),FALSE)),C3,F3)
=IF(或(IF(A3)”,ISNUMBER(搜索(A3,E3)),FALSE),IF(B3)”,ISNUMBER(搜索(B3,E3)),FALSE)),C3,F3)
它验证A3和B3都不是空的(“,…,FALSE),如果是,则返回FALSE。 然后对A3和B3进行两次相同的验证;搜索单元格是否包含在单元格E3中。 如果上面两个中的任何一个为真,那么整个If都为真,它将根据需要返回C3。 您没有提到在找不到字符串的情况下需要什么,因此在我的示例中,它返回F3中的值(但您可以用任何内容替换它)


希望有此帮助!

您可以使用以下数组公式:

{=INDEX(F$2:$F$6,MATCH(1,--(MMULT(--ISNUMBER(SEARCH(IF(ISBLANK(B2),A2,A2:B2),$E$2:$E$6)),TRANSPOSE(COLUMN(IF(ISBLANK(B2),A2,A2:B2))^0))>0),0))}
编辑后的数组公式通过按ctrl键确认

编辑:

反向搜索-从C列到F列。也是一个数组公式

{=INDEX($C$2:$C$9,MATCH(1,--(MMULT(--ISNUMBER(SEARCH(IF(ISBLANK($A$2:$B$9), $A$2:$B$9 & "#",$A$2:$B$9),E2)),TRANSPOSE(COLUMN($A$1:$B$1)^0))>0),0))}
在表达式
$A$2:$B$9&“#”
中,您可以指定搜索文本中未使用的任何字符


非常感谢您的帮助,但如果我的原始帖子不清楚,可能我还不够清楚。我想把C列中的值拉到F列,而不是相反。如果在C列中找到A列或B列中的文本,当我阅读A列中包含的
if文本时,我想返回F列中C列的值。Hm或者B在E列中找到,我需要C列中的值,我认为您需要从a列或B列中获取一个值,尝试在E列中找到它,并从C列中的F列返回数字。现在,如果在C列中找到a列或B列中的文本,但C列中没有文本来搜索那里的内容,您将编写
这是怎么回事?谢谢你指出我的打字错误!应该是“如果在E列中找到A列或B列中的文本,那么在F列中返回C列的值”。我很抱歉!谢谢你的新公式。但是你知道为什么它看起来不“识别”吗除了C2:C9以外的任何范围?当我输入公式时,没有其他单元格像通常那样高亮显示。它告诉我当我按ctrl+shift+enter时出现错误…哦,我想你必须在公式中用逗号替换分号。更正。