
我需要引用 3 張表,“運輸”、“設備”和“庫存”,其中運輸中的 A 列和設備中的 A 列均指位置編號,設備類型由文本指定並在數據透視表中計數在“庫存”中。每個位置編號關聯的設備類型有多種,部分位置編號尚未關聯。
用簡單的英語來說,我想說“如果運輸中的位置編號與設備中的位置編號匹配並且設備類型與庫存A9 匹配或設備類型與庫存A8 匹配,則返回K 列中的跟踪編號,否則返回空白值」。
我的公式是
=IF(AND(Equipment!A:A=Shipping!A2,OR(Equipment!C:C=Inentory!A8,Equipment!C:C=Inentory!A9)),Equipment!K:K,"").
雖然我知道有正確的值要返回,並且從邏輯上講,這應該可行,但無論如何我都會返回錯誤的值,所以我知道我錯過了一個複雜的問題。有什麼幫助嗎?
答案1
你這裡有幾個問題。
一般來說,Excel 公式不會將陣列作為輸入處理(如果您只是按 Enter 鍵),因此您的公式僅比較範圍的第一個儲存格。
如果您確實使用輸入數組公式Ctrl+Shift+回車它將與全系列進行比較,但您的或者和和函數會將整個範圍簡化為單一真/假(而不是單獨針對每一行)。
因此,使用數組公式時,您可以使用類似這樣的內容:但請注意,如果您使用整列數組,數組公式可能會變得非常慢(因為它們每個都包含約1M 個單元格,因此實際上定義範圍好得多。
=index(Equipment!K:K,
match(Shipping!A2,
if(((Equipment!C:C=Inentory!A8)+(Equipment!C:C=Inentory!A9))>0,Equipment!A:A,0)
,0)
)