聪明人,
在 Excel 中,将数组公式包装在 SUM 中似乎不会在所有情况下产生数组内容的总和。(也就是说,在我看来;显然,我很可能会感到困惑。)
尝试在 Excel 中编写等效的内部联接时会出现这种情况。由于涉及 Excel for Mac 的原因,我在不使用 Visual Basic 或 MS Query 的情况下执行此操作:仅数组公式和 INDEX/MATCH。我认为,我已经成功了,除了这种我无法理解的奇怪行为。
目前我正在使用kludge,但不必这样做会很好。任何帮助或建议将不胜感激。
以下重现了该问题:
表格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 中的特定键相对应的值,并在“table1.fkey=table2.key”上加入。输入公式:
{=("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE))}
分成两个垂直单元格给出所需的结果;即:
1 10
(酷,还是什么?)到目前为止,一切都很好。但现在我实际上想要上面两个数字的总和。所以我简单地将上面的公式包装在一个 SUM 中,然后在一个单元格中输入结果:
{=SUM(("a"=table1.key)*INDEX(table2.value, MATCH(table1.fkey, table2.key, FALSE)))}
结果?
2
有谁知道到底发生了什么?
詹姆士