返回列表 上一主題 發帖

[發問] 比對數量,自動套取符合大於領取數的資料???

本帖最後由 Bodhidharma 於 2013-6-19 17:30 編輯

回復 1# p6703

找第一個符合的話 C2陣列公式:
  1. =INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>=B2),0))
複製代碼
自動於D欄位秀出加總數量

看不懂,是要秀什麼的加總數量?

TOP

回復 2# Bodhidharma

是這樣嗎?
C2陣列公式(CTRL+SHIFT+ENTER輸入):
  1. =IF(ISNA(INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>B2),0))),INDEX(庫存!C:C,MATCH(A2,庫存!A:A)))
複製代碼
D2一般公式:
  1. =IF(B2>SUMPRODUCT(--(庫存!A:A=A2),庫存!B:B),"A料總庫存僅有"&SUMPRODUCT(--(庫存!A:A=A2),庫存!B:B),"")
複製代碼
以上都是整列引用,最好適資料量改為固定範圍,或是使用動態範圍

TOP

本帖最後由 Bodhidharma 於 2013-6-20 01:31 編輯

回復 4# p6703

抱歉,C2公式不知道為什麼少了一段,應該是陣列公式:
  1. =IF(ISNA(INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>B2),0))),INDEX(庫存!C:C,MATCH(A2,庫存!A:A)),INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>B2),0)))
複製代碼
另外D2在查找數量不大於所有該項目庫存的總和的時候,不是本來就應該是空白的嗎?還是要顯示什麼東西?

TOP

回復 7# p6703
  1. =IF(ISNA(INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>B2),0))),INDEX(庫存!C:C,MATCH(A2,庫存!A:A)),INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>B2),0)))
複製代碼
重點是
  1. INDEX(庫存!C:C,MATCH(1,(庫存!A:A=A2)*(庫存!B:B>B2),0))
複製代碼
match的部分,(庫存!A:A=A2)*(庫存!B:B>B2)會形成一個1跟0的陣列,兩個都符合就是1,其中一個不符合就是0
因此match(1,{1,0之陣列},0)就會回傳第一個符合的列數
再用INDEX把那個列數叫出來,即是想要的答案
若match不到(即ISNA(....),),則以INDEX(庫存!C:C,MATCH(A2,庫存!A:A))回傳第一個

TOP

        靜思自在 : 我們最大的敵人不是別人.可能是自己。
返回列表 上一主題