Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel formula 多个阵列中的多个阵列_Excel Formula_Match - Fatal编程技术网

Excel formula 多个阵列中的多个阵列

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。我做错了什么 提前谢谢 首先:您误解了或函数或需要布

我尝试在多个数组中匹配多个查找值。我想在同一个匹配中跨多个数组匹配其中一个查找值,但我一直得到“#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
。我做错了什么


提前谢谢

首先:您误解了
函数<代码>或
需要布尔值作为参数。它不会返回值数组,甚至不会返回布尔值。它将返回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。我明白为什么“或”不能用这种格式。另外,我已经尝试了你的第一个建议,而且效果很好。我也会试试第二个,只是看看。再次感谢。