作者plancklin (灰色被看成是白色)
看板Office
標題Re: [算表] 複雜的多項雙條件公式該怎麼設定
時間Mon Jan 7 02:48:11 2013
※ 引述《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)