间接公式不适用于深度单元格查找

间接公式不适用于深度单元格查找

我似乎遇到了一个有趣的情况......

我目前正在创建一个 Excel 电子表格,其中有一个包含多个值的表格。该表格中最重要的列是“尺寸”、“供应商”和“报价”,该表格用作供应商价格表的混合。这意味着对于一个特定项目,有多个供应商报价。

电子表格的要求是查找产品的最低报价,显示该价格,然后告诉用户该价格属于哪个供应商。

下表:

在此处输入图片描述

假设左上角单元格为 A1

用户将数据输入到表中,并据此将最佳报价计算到单元格区域 E2:F3 中,其中 E 列是最佳价格,F 列是 E 列中的值所属的供应商。

E列的公式为:

{=MIN(IF(Table2[Size]=$D$2,Table2[Offer]))}  // This is an array-formula

这将查看表中的“大小”列,根据该答案创建一个数组,并将每个真实结果中的报价添加到数组中。然后,该公式检查该临时数组,然后确定该数组中的最小值。此公式有效。

问题就出在这里……

在 F 列中,需要显示供应商。没有要计算的值。我无法让该值起作用。我能做的是至少获取单元格地址。我无法让单元格的值显示出来。

F列的当前公式是:

{=ADDRESS(MATCH(MIN(IF(Table2[Size]=$D$2,Table2[Offer])), Table2[Offer], 0), 2, 1)}   // This is an Array Formula

此公式的结果是正确的列,但不正确的行。在实时电子表格中,我的值从 1 开始偏离了 8 行。这是因为公式查看了临时数组中的行号,这是临时数组范围内的正确答案,但在电子表格范围内不正确,因此需要进行操作以在将来使用时将 8 添加到行号中。

答案的样本可能是这样的$B$2,但真正的答案是$B$10

这是一个问题。下一个问题是获取该地址单元格的值。

为此,我考虑在单独的单元格中使用来测试操作理论:

  1. =CELL("contents", $manual_answer_of_above)→ 结果 = 正确
  2. =INDIRECT(ADDRESS($manual_row_no, $manual_col_no))→ 结果 = 正确
  3. =INDIRECT(ADDRESS(ROW(CELL("contents", $cell_with_address), COLUMN(CELL("contents", $cell_with_address)), 2, 1))→ 结果 = 公式不被接受

我遗漏了什么?为什么我的公式不允许我显示正确的供应商?

答案1

如果您有 Office 365 Excel,这将返回以下值:

=INDEX(Table2[Vendor],MATCH(MINIFS(Table2[Offer],Table2[Size],$D$2),Table2[Offer],0))

否则,如果你不这样做,那么 AGGREGATE 可以取代 MINIFS:

=INDEX(Table2[Vendor],MATCH(AGGREGATE(15,6,Table2[Offer]/(Table2[Size]=$D$2),1),Table2[Offer],0))

两者都不需要使用数组条目。此外,两者都避免使用易失性函数,如 CELLS、INDIRECT 或 ADDRESS。

相关内容