搜索多个条件时Excel替代查找功能

搜索多个条件时Excel替代查找功能,excel,excel-formula,vba,Excel,Excel Formula,Vba,我想知道一个给定的单元格是否有一个包含在列表中的值。然后,我想使方程动态化,这样它会根据列表中的项目产生不同的输出。B列中应该有一个等式索引/匹配?根据a列中的值是否包含C列中的代码之一,从D列返回一个值 Column A Column B Column C Column D ABC12D Equation=$40 ABC $40 XYZ15Q Equation=$20 MNO

我想知道一个给定的单元格是否有一个包含在列表中的值。然后,我想使方程动态化,这样它会根据列表中的项目产生不同的输出。B列中应该有一个等式索引/匹配?根据a列中的值是否包含C列中的代码之一,从D列返回一个值

Column A     Column B              Column C    Column D
ABC12D       Equation=$40          ABC         $40
XYZ15Q       Equation=$20          MNO         $30
MNO26P       Equation=$30          XYZ         $20

excel函数中的or语句测试一系列逻辑语句。你想要的是更符合以下内容的东西

{=TEXTJOIN(", ",TRUE,IF(IFERROR(FIND(B1,A$1:A$5),"ERROR")<>"ERROR",ROW(A$1:A$5),""))}
此函数可以粘贴到C列中,用于测试B列中的每个项目

这是一个数组函数,在单元格中输入后,需要使用Ctrl+Shift+enter组合键使其正常工作

此函数将在A1:A5范围内搜索B1中的文本,并报告它在B1中找到的文本是什么,用逗号和空格分隔。在您的示例中,它将返回1。如果abc也出现在A列的第三个条目中,那么它将重新运行1,3

作为一个故障

FINDB1,A$1:A$5搜索B1中A1:A5范围内的文本。它返回一个包含文本位置的数组,在您的示例中,它将返回{1,VALUE,VALUE} 因为如果FIND函数找不到指定的文本,它将返回值error。在错误中,错误捕获值并用错误替换它。它将数组修改为{1,ERROR,ERROR} 如果数组值不为ERROR,则if语句if_uu;,ROWA$1:A$5将返回数组的行,否则将返回空白。这将把数组修改为{1,,}。 TEXTJOIN,TRUE,__;语句将数组连接在一起,用逗号和空格分隔。TRUE参数跳过数组的空白部分。
如果要根据自定义值出现的行返回自定义值,可以将行a$1:a$5替换为具有相应值的范围。

在您的设置中,您可以使用索引/匹配作为数组形式的查找:

=INDEX($D$1:$D$3,MATCH(TRUE,ISNUMBER(FIND($C$1:$C$3,A1)),0))
作为一个数组公式,在退出编辑模式时,需要使用Ctrl-Shift-Enter而不是Enter进行确认


我不确定我是否明白你想要什么。您可以包含所需的输出吗?或者已经生成值。OR是一个逻辑函数,将返回TRUE或FALSE。你可能需要匹配开始。请分享更多关于你正在尝试做什么。共享您需要帮助的函数中的一些示例数据和所需结果。您是想从找到B1的A列返回值,还是想返回找到A1的B列?我最终计划将其转换为Vlookup,以获取相应匹配的金额。例如,我将根据A列中的引用单元格中是否出现该系列字符来提取金额。例如,如果ABC位于单元格A1中,则返回$40。如果XYZ在A1单元格中,则返回$30。非常感谢,我将在稍后更深入地了解它的工作原理。再次感谢!啊,我明白了,它对样本数据有效,但那只是巧合。我将删除我以前的评论。好地方。