为什么在一个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.key
, table1.fkey
, table2.key
和table2.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公式与多细胞。