如何在Excel中使用与IF匹配的索引?

表格1

ABCD 1 Seq Item Re-Order Qty On-hand Qty 2 1 X 10 15 3 2 Y 10 5 4 3 Z 10 10 

其他工作表:表2

预期产出:

  ABC 1 Seq Item Re-Order Qty 2 1 N/AN/A 3 2 Y 10 4 3 N/AN/A 

在表2中,我需要像这样写入第2列公式:

 Index(Table1[Item],Match(table2[Seq],tabel1[Seq],0) WHERE table1[reorder qty] > table1[On-hand Qty] 

我不确定如何pipe理这样的要求?

这可以做到。 它需要使用表2中的数组公式。

通常使用INDEX ,只需使用一系列单元格作为array (公式的第一个参数)。 在这种情况下,我们将根据条件(您的WHERE子句)的结果给它一个新的array返回。

我将从结果的图片开始,然后给出公式。 对我来说, Table1在左边, Table2在右边。

桌子的图片

公式

公式非常相似,主要的区别是在IF部分返回哪个列,它为INDEX生成arrayIF的条件部分对于所有列是相同的。 请注意,在这里使用表格确实有助于复制公式,因为范围不能在我们的下面改变。

这些都是数组公式,需要用CTRL + SHIFT + ENTERinput。

Table2[Item]

 =INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[Item],"N/A"), MATCH([@Seq],Table1[Seq],0)) 

Table2[Re-Order Qty]

 =INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[Re-Order Qty],"N/A"), MATCH([@Seq],Table1[Seq],0)) 

Table2[On-hand Qty]

 =INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[On-hand Qty],"N/A"), MATCH([@Seq],Table1[Seq],0)) 

这些公式背后的主要思想是:

  • 基于条件返回一个新的数组。 这个新的数组将返回所需的列( ItemRe-order ,…),如果条件为FALSE ,它将返回N/A 这需要数组公式,因为它在IF逐行进行。
  • 获得行号的公式的MATCH部分是“标准”。 我们只是在Table1寻找Seq编号。 这决定了要返回的新array哪一行。