看板 Office 關於我們 聯絡資訊
※ 引述《churryrain (churryrain)》之銘言: : 軟體:Excel : 版本:2007 : 試算表呈現: : A B C : ─┼─┼──┼─────┼ : 1│甲│100 │C1=100*0.4│ : ─┼─┼──┼─────┼ : 2│乙│200 │C2=200*0.4│ : ─┼─┼──┼─────┼ : 3│丙│200 │C3=200*0.6│ : ─┼─┼──┼─────┼ : 4│丁│400 │C4=400*0.5│ : ─┼─┼──┼─────┼ : 5│甲│200 │C5=200*0.4│ : ─┼─┼──┼─────┼ : 試算表A欄、B欄、C欄之間的關係圖: : ---------------------------------- :    B欄=50 => C欄=B欄*0.5    :   : 甲 B欄=100~350 =>C欄=B欄*0.4 : B欄=500 => C欄=B欄*0.5 : ---------------------------------- : B欄=20~50 => C欄=B欄*0.45 : 乙 B欄 <500 => C欄=B欄*0.4 : B欄=400 => C欄=B欄*0.5 : B欄=200 => C欄=B欄*0.6 : ---------------------------------- : 丙 類推~~~~~~ : ---------------------------------- : A欄的分類為甲、乙、丙、丁、、、等分類 : B欄在A欄的分類下各有為數不一的限制,此限制關係到C欄相乘的數值該為多少 : (甲乙丙丁下的第二層分類皆不超過5個) : C欄取決於B欄的數值落在哪個甲乙丙丁下的區間再相乘多少 : 我想請問在以上關係下,要怎麼樣設定C欄的公式 : 讓我輸入A欄的分類後,在B欄輸入任意數值可以自動計算出C欄?? : 如果A欄跟B欄的兩層關係沒有那麼複雜的話 : 我會用IF跟AND來做 : 但是現在A欄跟B欄組合的可能性遠超過IF可以用的組數 : 加上C欄還要計算 : 麻煩告訴我公式該怎麼樣寫或一個思考的方向?感謝!>"< C1的函數 =B1*vlookup(B1,indirect(vlookup(a1,...)),,1) 說明 在別的頁面把甲乙丙丁對照的B欄的值 整理成各自的表 表內B欄依照小到大排好 再把這些表格的位址 整理成另一表 (例如) 甲 $A$1:$B$10 乙 $A$12:$B$20 ... 外層的vlookup用來查B欄的對應值, 內層的vlookup核對是甲乙丙丁哪一個 傳回位址範圍 去查相對應的表 用INDIRECT只是把傳回的位址值轉換形式讓函數可以接受 Vlookup最後那個1要打是讓VLOOKUP可以範圍化查值用的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.11.17
churryrain:感謝P大!!!>"< 原來可以這樣做,我再研究看看!在苦思 01/07 21:09
churryrain:許久以後我採取的方式是建立一張表,然後人工判定我現 01/07 21:10
churryrain:在要填入的B欄數值落在表中哪一行,取得代號後用 01/07 21:13
churryrain:vlookup函數計算C欄應乘的數,多建立一欄,再相乘這樣 01/07 21:15
churryrain:好不容易從vlookup逃出來現在又要跳進去了= =+ 01/07 21:17
修改C1公式忘了打的*B1 ※ 編輯: plancklin 來自: 1.171.11.17 (01/08 04:16)