求救!變化球!EXCEL依尺寸、重量有條件找出最接近值?

grape wrote:
想要將這些表整合在一起




My Interior Knowledge is Extraordinaire
Mystique Hsiao wrote:...(恕刪)
 謝謝您的答覆,我的理解如下,紅字為不明白的地方,能否指點迷津
函數說明:OFFSET(A1, 2, 3, 4, 5)
從 A1 欄位下移 2 列、右移 3 欄,然後取 4(列)*5(欄)的範圍,
以上面的例子,得到的範圍為 D3:H6,
後兩個參數若省略不指定,則代表只取 1*1 的範圍,即 D3

前述公式 OFFSET(A$7, MATCH(B2, A$16:A$20, 0)+E2*8, 1, 1, 8)
則是從 A7 下移 MATCH(B2, A$16:A$20, 0)+E2*8 傳回的值、右移 1 欄,
取得 1*8 的區間範圍,
所以其結果為 Bn:In
(n 為 16~20 或 24~28 其中之一)

函數中會以 A7 而非 A15 或 A23 當參考欄位,
是為了縮短公式而運用的小技巧(可減少約四成的公式長度),
利用 E2 欄位公式的結果(1 或 2)來判斷要從表1或是表2搜尋,
因為表1是從 16 列開始,表2是從 24 列開始(不含其標題)
兩者的列數差為 8,
所以函數 MATCH(B2, A$16:A$20, 0) 最後會加上 E2*8,
而參考欄位則統一上移至 A7,
舉例,若 MATCH 傳回 1,而 E2 為 2,下移列數則為 1+2*8 =17,
此時則會取得表2的門高 500 那列!

公式中第一個 MATCH 函數傳回的結果應該都是 1, 3, 5, 7 等奇數,
CHAR(65+INT(函數/2))
把函數傳回的 1, 3, 5, 7 除以 2,再取整數得出 0, 1, 2, 3
加上 65 後以 CHAR 轉換成 A, B, C, D
My Interior Knowledge is Extraordinaire
grape wrote:
看看那裡寫錯


如果分成不同工作表,較難以精簡後的公式達成,
所以~~~先改回落落長的公式!

ps.公式中的 $ 不可省略!

My Interior Knowledge is Extraordinaire
Mystique Hsiao wrote:如果分成不同工作表...(恕刪)
感謝不厭其煩的回覆,公式真的好長
但我沒考慮到重量不足時,五金數量應為0,我再想想看(可能想不出來...)
不過已經可以判斷使用,太開心了!高手在民間啊
據同事說還有新的挑戰,且戰且走吧
grape wrote:
但我沒考慮到重量不足時,五金數量應為0


先前就有想過可能會有這樣的問題,
但考慮到發生機率不高(至少範例中沒有),
且會增加公式長度及複雜度,
所以暫時沒有把特例情況寫入判斷條件,
不過這部份不難解決,晚一點有空時再來修改公式!

更新:僅需修改 E2 欄位的公式!
(也變得落落長了)

My Interior Knowledge is Extraordinaire
Mystique Hsiao wrote:先前就有想過可能會...(恕刪)
感謝回覆,祝您情人節快樂!
我又開始面對這個表了,公式好長啊…我先研究看看,感恩!
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!