为什么在一个SUM中包装Excel数组公式不会产生这种情况下的内容总和?

聪明的人,

在Excel中,似乎在SUM中包装数组公式不会在所有情况下产生数组内容的总和。 (就我看来,显然,我可能会感到困惑。)

当试图在Excel中编写内部联接的等价物时出现了这种情况。 由于涉及到Excel的Mac的原因,我没有使用Visual Basic或MS Query这样做:只有数组公式和INDEX / MATCH。 我认为,除了这个我不知所措的奇怪行为之外,我认为这是成功的。

目前我正在使用一个kludge,但它不会很好。 任何帮助或build议将非常感激。

以下重现了这个问题:

表格1

key | fkey ----+------ a | x a | y b | x b | y 

表2

 key | value ----+------ x | 1 y | 10 

上面的布局应该表示这两个小表如何出现在电子表格中:没有什么聪明的。 四个明显的范围命名为table1.keytable1.fkeytable2.keytable2.value

那么,内连接。 我希望表2中的那些值与表1中的特定键相对应,并join`table1.fkey = table2.key'。 input公式:

 {=("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE))} 

分成两个垂直单元给出所需的结果; 即:

 1 10 

(酷,还是什么?)到目前为止,这么好。 但现在我真的想要上面两个数字的总和。 所以我简单地将上面的公式包装在SUM中,并将结果input到一个单元格中:

 {=SUM(("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE)))} 

结果?

 2 

有没有人有任何想法到底是怎么回事?

詹姆士

INDEX的row_num参数在单个单元格数组公式中使用时不能是数组。 INDEX函数总是返回1.尝试这个

 =SUM(INDEX(table2.value,{2,1})) 

它将始终返回10,因为INDEX将只接受数组的第一个元素。 我不知道为什么他们工作不同单细胞arrays公式与多细胞。

    Interesting Posts