作者JieJuen (David)
看板Office
標題Re: [問題] IF 與 OR 二個函數
時間Mon Apr 13 02:17:46 2009
真不好意思,之前的OR式寫錯了
讓您摸不著頭緒
新問題自然不只一種改法
例如可以在原式加入一點條件
=2*ROUNDUP(ROUNDUP(ROUNDUP(IF(OR($L12>10,$L12<0.1),$L12,10),0)*1.46,0)*
(1-OR($L12>10,$L12<0.1)/10),0)
當然不一定要寫得這麼"奇妙"(上篇推文比較正常)
也可以更改式子結構 把IF視為主體
=2*IF(OR($L12>10,$L12<0.1),ROUNDUP(ROUNDUP(ROUNDUP($L12,0)*1.46,0)*0.9,0),
ROUNDUP(ROUNDUP(10,0)*1.46,0))
然後一些常數不妨直接算出來(選住"
ROUNDUP(ROUNDUP(10,0)*1.46,0)" 按F9)
=2*IF(OR($L12>10,$L12<0.1),ROUNDUP(ROUNDUP(ROUNDUP($L12,0)*1.46,0)*0.9,0),
15)
就擴展式子的觀點來看 原先是
=IF(OR(A1>10,A1<0.1),A1,10)
如果A1和10要做的事一樣 IF就會在式子裡面 RRR(IF)
如果不一樣 IF就在外面 IF(OR,RRR(A1),30)
這樣比較好想與好寫
而上述第一種方法則是 R(RR(IF)*IF)
有時候也不錯 但結構複雜了些
※ 引述《tccan (阿駿)》之銘言:
: 在前一個問題解決之後,目前我又遇到了一個問題如下:
: I J K L
: 3 36 12.3
: 4 I4 J4 6.8
: 5 I5 4.6
: 6
: 7 I7 J7 7.6
: 8 36 42 54 12.6
: 9 46 16.3
: 10 (52) 62 80 19.0
: 下方就是我的公式函數(取自 I10 格,我用 ( ) 特別標明的數值)
: ROUNDUP(ROUNDUP(ROUNDUP(IF(OR($L10>10,$L10<0.1),$L10,10),0)*1.46,0)*0.9,0)+
: ROUNDUP(ROUNDUP(ROUNDUP(IF(OR($L10>10,$L10<0.1),$L10,10),0)*1.46,0)*0.9,0)
: (上方公式與下方公式請二行併做一行)
: 而 I4、I5、I7 三個空格,因 L4、L5、L7 少於10.0,故公式需要變成下列:
: ROUNDUP(ROUNDUP(IF(OR($L10>10,$L10<0.1),$L10,10),0)*1.46,0)+
: ROUNDUP(ROUNDUP(IF(OR($L10>10,$L10<0.1),$L10,10),0)*1.46,0)
: 亦即,我的問題就是要如何才能夠將上述二個公式,整合變成一個完整的公式呢?
: 目前我的想法一樣是利用 IF(OR(...)...) 這一個函數,但我就是不知道要再如
: 何將這一個函數套到整個公式之中。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.36.201
→ tccan:非常感謝這位大大的幫忙,基本上我暫時已經了解了! 04/13 19:03
→ JieJuen:^^ 04/13 21:23
我看到上一篇的推文補充
→ tccan:之所以要用相加的方式,因為到時還會計算到其餘不同的數值, 04/13 19:00
→ tccan:例如上方的公式是*1.46,但還需要再算出*1.75或*2.27的總合 04/13 19:01
→ tccan:所以就會變成(......)*1.46,0)+(.....)*1.75,0)這樣的不同值 04/13 19:02
可以用陣列公式來簡化
陣列公式 以Ctrl+Shift+Enter結尾
=SUM(IF(OR($L3>10,$L3<0.1),ROUNDUP(ROUNDUP(ROUNDUP($L3,)*{1.46,1.46},)*0.9,),
ROUNDUP(10*{1.46,1.46},0)))
您可以先測試一下算出來的結果對不對(若不放心)
再把第二個1.46改成1.75
※ 編輯: JieJuen 來自: 114.47.36.201 (04/13 21:25)