Board logo

標題: [發問] 設定格式化條件 [打印本頁]

作者: norafang    時間: 2014-2-22 20:28     標題: 設定格式化條件

各位大Excel先進好,小弟最近在寫一個條件式一直想不出來,也用搜索爬文,但找不到我要的解答,因此忍不住上來求救

問題是這個樣子,我有五個儲存格分別各有數值,全部條件成立我可以用=if(and($a$1>50,$b$1>15,.....)=true,1,0)寫出
[attach]17576[/attach]       
但問題來了,如果我想要五個儲存格中只有要四個條件成立時即以1顯示應該要怎麼寫呢?
謝謝
作者: huijuang    時間: 2014-2-22 22:04

我的做法如下,請參考
=IF(((A1>40)*1+(B1>1000)*1+(C1>20)*1+(D1>900)*1+(E1>222)*1)>=4,1,0)
作者: yen956    時間: 2014-2-23 12:23

回復 2# huijuang
很好的方法, 收下, 謝謝!!
也可簡化為(因為各個條件的權值一樣):
=IF(((A2>40)+(B2>15)+(C2>20%)+(D2>5%)+(E2<2))>=4,1,0)
作者: norafang    時間: 2014-2-24 00:22

回復 3# yen956

謝謝二位先進的回答,已完全解決我的問題了,針對上述涵數寫法,可否解釋一下

1.=IF(((A2>40)*1+(B2>1000)*1+(C2>20)*1+(D2>900)*1+(E2>222)*1)>=4,1,0)
(A2>40)*1(和接下來的四個判讀式一樣狀況),是否因為A1大於40,TRUE值為1,所以乘以1才會成立?FALSE值則為0則,不成立

2.=IF(((A2>40)+(B2>15)+(C2>20%)+(D2>5%)+(E2<2))>=4,1,0)
同理,因為條件成立,所以(A2>40)用IF帶出必為TURE值1,所以可以不用乘以1了

3.=IF(((A2>40)+(B2>15)+(C2>20%)+(D2>5%)+(E2<2))>=4,1,0)
由IF帶出之判讀中的細項(A2>40)....,完整寫法是否為(A2>40=TRUE,1,0),又或者它省略了什麼?

謝謝
作者: huijuang    時間: 2014-2-24 08:38

我是把(A1>40),當成if(A1>40,true,false)來看
那可以簡化為(A1>40)
因為(A1>40)如果成立的話,會顯示True
所以我習慣上會做成(A1>40)*1,這樣就會可運算了
作者: norafang    時間: 2014-2-24 21:07

回復 5# huijuang

所以if(A1>40,true,false)裡的true自動判讀為1,false則為0,true成立後為1,false則為2,對嗎?
作者: huijuang    時間: 2014-2-24 22:31

回復 6# norafang

建議你打開excel試一下
(A)如果A1=50 ,那=(A1>40)會顯示TRUE
( B )如果A1=20 ,那=(A1>40)會顯示FALSE
當(A1>40)後面有運算時,TRUE會當成1,FALSE會當成0
也就是說=(A1>40)*100,
如果是(A)時,得到的答案會等於100
如果是(B)時,得到的答案會等於0
作者: norafang    時間: 2014-3-4 11:53

回復 7# huijuang
測試結果無誤,感謝大大的解答
作者: heavenweaver    時間: 2014-3-4 16:06

回復 2# huijuang 回復 3# yen956
如果不是兩位的指導,恐怕我會想得複雜又笨的方法例如使用CountIF,感謝!
作者: is681003    時間: 2014-3-13 23:34

大家都很用心,感謝回答




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)