在 Excel 中取得如下的資料表,試著來練習OR運算。
1.挑出項目是甲,乙,丙的內容來加總
(1) 儲存格D3:{=SUM(IF((A2:A27="甲")+(A2:A27="乙")+(A2:A27="丙"),B2:B27,0))}
陣列公式,輸入完成要按Ctrl+Alt+Enter。
根據A欄中符合條件者對應的B欄內容陣列來運算,公式中的「+」為OR運算。
(2) 儲存格D6:=SUMPRODUCT((A2:A27="甲")+(A2:A27="乙")+(A2:A27="丙"),B2:B27)
使用SUMPRODUCT函數,也是使用陣列觀念來計算。(此公式不是陣列公式)
(3) 儲存格D9:{=SUM(IF(A2:A27={"甲","乙","丙"},B2:B27,0))}
改良(1)的作法,公式更精簡。
2.挑出內容小於20或是大於80者來加總
(1) 儲存格D13:{=SUM(IF((B2:B27<20)+(B2:B27>80),B2:B27,0))}
陣列公式,輸入完成要按Ctrl+Shift+Enter。
根據B欄中符合條件者的內容陣列來運算。
(2) 儲存格D16:=SUMPRODUCT((B2:B27<20)+(B2:B27>80),B2:B27)
這些公式中都沒有使用OR函數來執行OR運算,而是以「+」運算子來執行OR運算。
文章標籤
全站熱搜

請問如果想製作一個藥物劑量計算機,先用年紀分,小於某個年紀顯示不可使用、大於某個年紀顯示某個固定劑量、唯有介於其中者進入試算公式,此時需要以體重作為自變數,應變數為劑量。拜讀版大文章許久,因故請益之。感謝回覆!
由於您沒有附上範例,簡單回答,如果以8~18歲要計算藥的劑量,則公式的觀念可設為: =if(年紀<8,A劑量,if(年紀>18,B劑量,體重X藥劑比例)) 或是您貼上一些範例,再來思考。
舉例: 某藥物年紀6個月以下禁用,12歲以上用固定劑量每日兩顆。年紀介於其中的小朋友每天每公斤劑量為0.4mg。
參考:http://isvincent.pixnet.net/blog/post/43839256 看看是否合用!
請教vincent大 {=OFFSET($A$1,SMALL(IF(OR($AP$2:$AP$536="A",$AP$2:$AP$536="B",$AP$2:$AP$536="C"),4^7,ROW($A$1:$A$535)),ROW()-1),COLUMN()+1)} 這裡的OR為何無法以陣列執行? 是少了什麼嗎? 另外,陣列的使用,好像應該是"ctrl+shift+Enter",文中寫"ctrl+alt+Enter"是否為筆誤呢?
謝謝你,已更正錯誤之處。 另外,你所提OR在SUMPRODUCT中的使用,主要是因為在SUMPRODUCT函數中資料是以陣列形式執行乘積和,如果使用OR函數就只會得到一個結果,而非陣列,所以無法於SUMPRDODUCT函數中運算得到正確結果。