首页 > 解决方案 > 为什么这个 LOOKUP 甚至可以工作,它是如何工作的?

问题描述

我有以下公式,它给出了 1080。当我突出显示 B1:B3(包含 0、1、0)并按 F9 时,它给出了这个数组:{0;1;0}。因此,我将 B1:B3 替换为 {0;1;0},现在,公式给出了 #N/A。这引出了我的问题:F9 真正给出了什么?据我所知,B1:B3 和 {0,1,0} 是等价的,但公式不这么认为。

=SUMPRODUCT(LOOKUP(ROW(INDIRECT("1:2880")),{1;421;961;1441;1861;2401;2881;2881;2881;2881},B1:B3))

Excel 2010

这只是一个例子。最近我经常在不同的数组公式上得到相同的现象。当单元格地址被手动输入的数组替换时,公式不再有效。这发生在某些(但不是全部)公式中。在简单的 INDEX 或 OFFSET 中,手动输入的数组可以替换单元格地址,并且公式/函数仍然有效。

这是屏幕截图。第一个是原始公式。如果我突出显示 B1:B3 并按 F9,则会出现数组 {0,1,0}。如果我突出显示第一个,因此,原始公式并按 F9,我得到 1080。如果我突出显示 B1:B3 以获取数组,然后突出显示整个公式,然后按 F9,我得到 #N/A。

在此处输入图像描述

注意:进一步调查表明,如果将数组扩展为与之前的数组相同的大小,则公式将起作用。我没有使用 {0;1;0},而是使用 {0;1;0;0;0;0;0;0;0;0},公式给出 540。这是预期的结果。所以,现在,问题变成了为什么 B1:B3 会起作用以及它是如何起作用的?标题已更新以反映新问题。

标签: arraysexcelexcel-formula

解决方案


推荐阅读