這可以完成。它需要使用Table2
中的數組公式。
通常使用INDEX
,您只需使用一系列單元格作爲array
(公式的第一個參數)。在這種情況下,我們將根據有條件的結果(您的WHERE
條款)給它一個新的array
返回。
我將從結果圖片開始,然後給出公式。對我而言,Table1
位於左側,Table2
位於右側。
式
的公式很相似,主要區別是在其產生array
爲INDEX
的IF
部分返回哪些列。所有列的IF
的條件部分都是相同的。請注意,在這裏使用表格確實有助於複製公式,因爲範圍不能在我們的下面更改。
這些都是數組公式,需要用CTRL + SHIFT + ENTER輸入。
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))
這些公式背後的主要思想是:
- 根據條件返回一個新數組。這個新數組將返回所需列(
Item
,Re-order
,...),如果條件爲FALSE
,它將返回N/A
。這需要數組公式,因爲它在IF
中逐行進行。
MATCH
獲取行號的公式的一部分是「標準」。我們只需要尋找Table1
中的Seq
號碼。這決定了要返回的新的array
的哪一行。
您能否用這個函數的預期輸出來填寫'Table2'?另外,你的'Table1'是否有'Seq'的多個條目?如果是這樣,你可以添加一個副本到你的輸入,並顯示在這種情況下輸出應該是什麼?看起來你只是想根據'reorder
@Byron:我在'table2'中添加了預期結果。 其實你是對的我需要篩選'table1',其中onhand小於重新排序(我糾正了這一點,因爲大於號不正確)。 我知道我可以簡單地過濾,但我需要它在一個單獨的表,所以這可以通過vlookup或索引匹配管理?我的意思是,一般來說,如果某個公式被實現爲真,從數組中選擇數據? –