如何在excel中使用带IF的索引匹配?
表1 其他工作表: 表2 预期产出:如何在excel中使用带IF的索引匹配?,excel,Excel,表1 其他工作表: 表2 预期产出: A B C D 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中,我需要在第2列中输入如下等式
A B C D
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中,我需要在第2列中输入如下等式:
A B C
1 Seq Item Re-Order Qty
2 1 N/A N/A
3 2 Y 10
4 3 N/A N/A
我不确定如何管理这种需求?这是可以做到的。它需要使用表2中的数组公式 通常使用
索引
时,只需使用一系列单元格作为数组
(公式的第一个参数)。在本例中,我们将给它一个新的数组
,以根据条件(您的WHERE
子句)的结果返回
我将从结果图片开始,然后给出公式。对我来说,Table1
在左边,Table2
在右边
公式
这些公式非常相似,主要区别在于在为索引生成数组的IF
部分中返回哪一列。IF
的条件部分对于所有列都是相同的。请注意,在这里使用表格确实有助于复制公式,因为范围在“我们”下无法更改
这些都是数组公式,需要使用CTRL+SHIFT+ENTER输入
表2[项目]
Index(Table1[Item],Match(table2[Seq],tabel1[Seq],0) WHERE table1[reorder qty] > table1[On-hand Qty]
表2[重新订购数量]
=INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[Item],"N/A"), MATCH([@Seq],Table1[Seq],0))
=INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[Re-Order Qty],"N/A"), MATCH([@Seq],Table1[Seq],0))
表2[现有数量]
=INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[Item],"N/A"), MATCH([@Seq],Table1[Seq],0))
=INDEX(IF(Table1[Re-Order Qty]>Table1[On-hand Qty],Table1[Re-Order Qty],"N/A"), MATCH([@Seq],Table1[Seq],0))
这些公式背后的主要思想是:
- 根据条件返回一个新数组。这个新数组将返回所需的列(
项
,重新排序
,…),或者如果条件为FALSE
,它将返回N/A
。这需要数组公式项,因为它是在IF
中逐行进行的
- 用于获取行号的公式的
匹配部分为“标准”。我们只是在表1
中查找Seq
编号。这决定了要返回新数组的哪一行
您能用此功能的预期输出填写表2吗?另外,您的表1
是否有多个Seq
条目?如果是这样的话,您能否在输入中添加一个副本,并显示在这种情况下输出应该是什么?似乎您只想根据重新排序
的条件筛选表1
。我不清楚表2
@Byron的目的:我在“表2”中添加了预期结果。事实上,你是对的,我需要过滤“表1”,其中手头的数量少于重新订购的数量(我更正了这一点,因为大比号不正确)。我知道我可以简单地过滤,但我需要它在一个单独的表,所以这可以通过vlookup或索引匹配管理?我的意思是,一般来说,如果某个公式是真的,从数组中选择数据?