Excel formula 多个阵列中的多个阵列
我尝试在多个数组中匹配多个查找值。我想在同一个匹配中跨多个数组匹配其中一个查找值,但我一直得到“#VALUE”或“#N/A”。 为了便于阅读,我尝试使用的当前公式简化如下Excel formula 多个阵列中的多个阵列,excel-formula,match,Excel Formula,Match,我尝试在多个数组中匹配多个查找值。我想在同一个匹配中跨多个数组匹配其中一个查找值,但我一直得到“#VALUE”或“#N/A”。 为了便于阅读,我尝试使用的当前公式简化如下 =INDEX($I$2:$I$10,MATCH(A2&B2&C2,$D$2:$D$10&OR($E$2:$E$10,$F$2:$F$10)&$G$2:$G$10,0)) 在本例中,我尝试在$E$2:$E$10或$F$2:$F$10中匹配B2。我做错了什么 提前谢谢 首先:您误解了或函数或需要布
=INDEX($I$2:$I$10,MATCH(A2&B2&C2,$D$2:$D$10&OR($E$2:$E$10,$F$2:$F$10)&$G$2:$G$10,0))
在本例中,我尝试在$E$2:$E$10
或$F$2:$F$10
中匹配B2
。我做错了什么
提前谢谢 首先:您误解了
或函数<代码>或
需要布尔值作为参数。它不会返回值数组,甚至不会返回布尔值。它将返回TRUE或FALSE
第二:即使或
可以像您想象的那样工作,匹配
需要一维查找数组、行向量或列向量。它不能处理像{$D$2&$E$2&$G$2,$D$2&$F$2&$G$2;$D$3&$E$3&$G$3,$D$3&$F$3&$G$3;…}
因此,对于您的示例,最简单的解决方案是对每个可能的查找数组使用一个索引
匹配
组合:
{=IFERROR(INDEX($I$2:$I$10,MATCH(A2&B2&C2,$D$2:$D$10&$E$2:$E$10&$G$2:$G$10,0)),INDEX($I$2:$I$10,MATCH(A2&B2&C2,$D$2:$D$10&$F$2:$F$10&$G$2:$G$10,0)))}
或者,如果您真的需要以您认为公式应该起作用的方式进行计算,那么您就不能使用MATCH
,而需要以另一种方式计算行号。例如:
{=INDEX($I$2:$I$10,MIN(IF(A2&B2&C2=$D$2:$D$10&T(OFFSET($E$2,ROW($2:$10)-2,{0,1}))&$G$2:$G$10,ROW($2:$10)-1,ROWS($D$2:$D$10)+1)))}
假设A2:G10
中的值为文本值,则使用T
。如果它们是数字,则必须使用N
。谢谢Axel。我明白为什么“或”不能用这种格式。另外,我已经尝试了你的第一个建议,而且效果很好。我也会试试第二个,只是看看。再次感谢。