看板 Office 關於我們 聯絡資訊
其實這標題我不知道怎麼下 因為最後的答案不含VLOOKUP,也不是真的什麼不等式 以menth的座標為準,最後答案(E1)為 =IF(D1<=$B$2,$C$2,INDEX($C$2:$C$4,MATCH(D1-10^-5,$B$2:$B$4)+1)) http://2y.drivehq.com/q/VlookupInequality.xls 前情提要,就是說有個庫存量D1,要在一系列數量(B欄)中, 找到第一個(B欄)大於等於D1的那一列。 這麼說是因為原舉例中, 庫存(D1)如果250,A產品數量(B2)200,那麼A產品不夠用無法完工 如果A產品數量(B3)1200就夠用了能完工 那麼假如A產品數量(B某)是等於250,"應該"也是夠用 A B C D 1 數量 日期 D1=現有庫存 2 A產品 200 7/8 3 A產品 1200 7/19 4 A產品 1700 7/21 好,現在要找第一個符合 B欄>=D1 之列 (就是 D1<=B欄) 然而用VLOOKUP系列函數是找到 D1>=B欄 之列 當庫存D1是: 0 ┐ ├ 所求的第1組 ┌ 200 ┘ VLOOKUP的第1組 ┤ ┐ └ ├ 所求的第2組 ┌1200 ┘ VLOOKUP的第2組 ┤ └ 1700 我沒辦法表示的更簡單了,總而言之,這裡的關係想了就頭痛, 又等於又不等於的, 因此,有一個簡單而偷懶的方法,就是把D1減一個很小的數, 比如本來的1200在第2組,就會跑到第1組去,本來的200就到"第0組"去了 就與所求的"不等式關係"相同,只要再平移組別即可。 因為要平移組別,用了INDEX(MATCH)而非VLOOKUP。 所以最後的式子用減去微小量來處理不等式,且VLOOKUP也沒出現.. 而式中出現的"<="見以下第3. 關於menth的式子 有幾個想法 1. IFERROR(...,FALSE) 這就是 NOT(ISERROR)的意思,NOT還不需用 改IF參數位置即可 2. 式子前面部分應是D1而非D2 3. 庫存(D1)輸入199以下應該會錯誤,我的"<="主要是處理這部分,也就是所謂的"第0組" ※ 引述《menth (曼秀)》之銘言: : ※ 引述《t6370345 (貓咪阿甘)》之銘言: : : 軟體:EXCEL : : 版本:2007 : : 請問EXCEL怎麼判斷時間(日) : A B C : 1 數量 日期 : 2 A產品 200 7/8 : 3 A產品 1200 7/19 : 4 A產品 1700 7/21 : : 現有庫存 250 前置期2天 : : 怎麼讓他讀出 完工日7/19 開工日7/17 : : 我現在是用 IF 去做假設庫存<數量 ....但是超過6筆就卡關了 : : 有人能幫忙嗎? : 假設 數量在B欄,日期在C欄,現有庫存置於D1,完工日置於E1,開工日置於F1 : 如上你所編輯的表格。 : E1=IF(IFERROR(D2=VLOOKUP(D1,B:B,1,FALSE),FALSE), ^^ D1 : VLOOKUP(D1,B:C,2,FALSE), : LOOKUP(D1,OFFSET(B2,,,COUNTA(B:B),1),OFFSET(C2,1,,COUNTA(C:C),1))) : counta用於動態範圍 : if的假設用於當現有庫存等於你設定的庫存時,可以直接利用vlookup得到日期資訊, : 反之,則利用lookup做另一種參照。 : 當然,開工日公式就是完工日-2,也就是F1=E1-2。 : 如果你在編輯絕對不可能會有現有庫存等於設定的數量, : 那E1公式可以簡化為 : E1=LOOKUP(D1,OFFSET(B2,,,COUNTA(B:B),1),OFFSET(C2,1,,COUNTA(C:C),1)) : 如果有誤還請指教。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.1.223
JieJuen:常常用 但好像沒解釋過 以前也不知下了什麼標題.. 07/26 20:37