之前已有大神協助解答,但又多了條件判斷門寬<800、>=800,進入重量判斷的範圍不同,想要將這些表整合在一起,該如何做?附上檔案載點!https://drive.google.com/file/d/1XEUzSCFVu3FYB7uHKAxySf1lWxMjbSGc/view?usp=sharing
函數說明: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
Mystique Hsiao wrote:函數說明:OFFSET...(恕刪) 感謝您的解說,有理解一些,但尚未成功,資質駑鈍此範例是做來提問用的,實際資料筆數很多分成三頁,我還在試,想請您的慧眼看看那裡寫錯附上檔案載點!https://drive.google.com/file/d/1XEUzSCFVu3FYB7uHKAxySf1lWxMjbSGc/view?usp=sharing
Mystique Hsiao wrote:如果分成不同工作表...(恕刪) 感謝不厭其煩的回覆,公式真的好長但我沒考慮到重量不足時,五金數量應為0,我再想想看(可能想不出來...)不過已經可以判斷使用,太開心了!高手在民間啊據同事說還有新的挑戰,且戰且走吧
grape wrote:但我沒考慮到重量不足時,五金數量應為0 先前就有想過可能會有這樣的問題,但考慮到發生機率不高(至少範例中沒有),且會增加公式長度及複雜度,所以暫時沒有把特例情況寫入判斷條件,不過這部份不難解決,晚一點有空時再來修改公式!更新:僅需修改 E2 欄位的公式!(也變得落落長了)