使用 INDEX/XMATCH 将数组传递到 Excel 中的 AGGREGATE,导致在尝试获取 MEDIAN 时出现 #Value! 错误

使用 INDEX/XMATCH 将数组传递到 Excel 中的 AGGREGATE,导致在尝试获取 MEDIAN 时出现 #Value! 错误

我在右侧的数组中有一排公司。使用 INDEX() + XMATCH(),我对照表格检查公司名称并提取相应的比率(十进制数)。这会创建一个包含所有比率值的溢出数组。如果我将 =AGGREGATE(12,6, "Array Cell Reference") 指向溢出数组,它会完美地取中位数。

但是,如果我将 INDEX/MATCH 公式复制并粘贴到 AGGREGATE 中,则会收到 #Value! 错误。

我通过调整电子表格让它与 MEDIAN(INDEX/MATCH) 一起工作,但它让我很好奇聚合的问题是什么。主要是因为我真的想使用 AGGREGATES 高级错误处理。

谢谢您的阐释,上帝保佑!

答案1

假设您有 1-7 的值,它们在 A1:A7 中是唯一的,并且在 B1:B7 中有一些某种值,并且使用 D1:D3 中的数据作为 B1:B7 中的查找值来执行INDEX/MATCH公式。功能将产生三个结果,假设所有结果都成功,那么就会产生如下值集。MATCHSpill7,1,5

该公式本身并不完全是动态范围。它得出溢出结果,但那只是其中的一半。

假设公式在 E1 中。它会溢出以填充 E1:E3,或者可以这样称呼,E1#。到目前为止,一切都很好,似乎就是这样。引用 E1#,您可以获得 DR 的所有乐趣。但是使用其中的公式,您就不会获得。DR 是结果,而不是公式。

您可以引用结果,即 DR,它的行为正如您所期望的那样。但是将公式放在那里意味着您不再引用 DR,而只是引用导致 DR 的公式。遗憾的是,这还不足以让它发挥作用。

因此,INDEX/MATCHthen 就像一个单一结果公式,取其内部结果数组的“左上角单元格”,并传递该单个数据点。在上面的例子中,即 7。虽然AGGREGATE如果输入是单元格引用,则很乐意接受单个输入,但它不会接受实际值。因此,它变成了=AGGREGATE(12,0, 7 )7,并被 7 所阻碍。如果 7 是“A7”,并且 A7 只保留一个 7,它会很高兴,但它不会直接接受 7 本身。(无论如何,不​​会接受“12”。我没有尝试看看它的其他函数是否会这样做。)

解决该问题的一种方法是将INDEX/MATCH公式放入命名范围并引用命名范围,然后该命名范围将取代“E1#”样式的引用。

LET但是,使用并将其放置在命名变量中,然后在工作公式中使用该命名变量的看似相关的方法LET不起作用。这是因为虽然LET看似创建了具有单元格本身范围的命名范围,但实际上并非如此。(遗憾的是,MS 在创建时没有实现这一飞跃,LET并且存在重要差异。)

但并非一切都失去了LET……实际上,它在某种程度上与这种non-LET情况完全类似。如果您在以下模式下使用“双变量”:

=LET(cow, INDEX(A1:B7,XMATCH(D1:D3,B1:B7,0),1),    pig, cow,    pig)

其中,您通过溢出公式定义“cow”,然后将另一个变量(在本例中为“pig”)定义为等于“cow”,那么您就完成了将公式放在单元格中并将其溢出的类似操作,然后引用该单元格而不是公式本身。您已使用这两个步骤最终得到一个真正的 DR 来引用,现在您可以并且仍然可以获得完整的结果。如果您将上述工作公式从裸露的“pig”更改为AGGREGATE使用“pig”的函数,那么您就会成功。

因此,您实际上可以使用LET,只需付出额外的努力/步骤,并且所有参照物都在单个单元格中,这使得两年后理解它变得更加容易,并且消除了某人可能删除或修改您的命名范围的可能性。

(叹气……)但你仍然不能。Excel 不允许在工作公式中或在AGGREGATE周围放置LET。这很可悲。

但是,虽然我现在没有时间去研究它,但当 Excel 生成一个内部数组(就像那样INDEX/MATCH)时,它会保留它,尽管它似乎只传递了第一个元素。如果可以找到一个函数来包装它,该函数将处理数组,那么该内部数组可以“跳过”创建它并试图将其削减为单个元素的函数。然后将整个数组传递到公式的其余部分,您可以从中获得完整的结果。这个广泛的主题coercion在 Excel 中被称为,也可用于实现其他看似被禁止的结果。因此,如果有人能找到一个函数来恢复该内部数组,可以这么说,同时不会做任何过于无用的事情,那么可以通过包装该强制函数的某些东西来对数组进行操作。但很难找到这样的东西,现在是凌晨 3:19,所以我把接力棒交给了。

与此同时,您可以放心地使用命名范围作为第二步。

相关内容