| «‹ October 2026 ›» | | S | M | T | W | T | F | S | | | | | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | 11 | 12 | 13 | 14 | 15 | 16 | 17 | | 18 | 19 | 20 | 21 | 22 | 23 | 24 | | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
|
2012 年 7 月 23 日 星期一  |
| [筆記]Excel IF 語法範例說明 |
分類: 未分類 |
不知道各位有沒有一種「書到用時方恨少」的感觸,明明手邊就 有個很好的工具,邏輯判斷也能迅速寫完,可惜的是工具無法順 利運行的感嘆。雖踢到鐵闆,卻也學到了豐富的經驗,幸運啊!
這次剛好幫朋友的忙,利用 Excel試算一些判斷的公式,程式很 簡單地已在腦袋裡寫好,但就是不會使用 Excel的 IF 函數,搞 得有種很想撞牆的感嘆,明明邏輯正確,語法卻是怎麼寫怎麼不 斷,這樣怎麼對得起「亞美冰」 (花媽) 呢?
附註:亞美冰是我高中教程式的導師,目前升格為花媽,這說來 話長,總之,她有個可愛的寶貝女兒「橘子」,想看橘子 照片,請移架至相簿吧!那裡翻翻找找就會看到可愛的身 影囉!目前亞美冰仍在以前的學校任職,非常年輕的唷!
好吧!廢話不多說,先來解釋我們要計算的公式。
A:變數一,B:變數二,C:變數三,X:暫存值,Z:計算結果
X = A/B
X < 2 → (A-B) * 0.4 * C = Z 3 > X >= 2 → (0.5 * A - 0.6 * B) * C = Z X >= 3 → (0.6 * A - 0.9 * B) * C = Z
上面這個公式很簡單,按照以前寫程式的習慣,IF..Alse,就可 以解決,要不然用 Select..Case,也是 OK,但當看到 Excel怪 公式,腦筋就突然轉不過來了!
Excel IF 函數公式說明:
IF(logical_test,[value_if_true],[value_if_false])
按照這個地方,剛開始看得時候一定看不懂這是什麼鬼東西,似 乎沒有辦法像寫程式那樣簡單寫出視覺化的巢狀程式。網路上也 翻了一些文件來看,可能是搜尋條件太差的關係,老是翻到一堆 自己已經會的東西,加上 Office 2003的「F1」又找不到有關, IF函數的使用方法。〈應該是我太遜沒找到〉經過前輩的提醒, 突然看懂該怎麼運用這個函數了。
logical_test,這邊可以加上判斷條件,還可以加上 AND,取出 數值,例如這樣:
IF(AND(A1=1,B1=2),A1*0.5,B1*0.6)
換個角度,看上面的公式,不難發現 False的時候,可以在接著 往下個IF判斷下去,因為假如 logical_test 判斷為 True 時, 會執行 value_if_true, False時,則可以在加上另個判斷。
按照上面的公式看來,我們可以歸類一下程式,因為隻有三種判 斷,自然就比較簡單一下點。
IF(IF(E2>=3,((0.6*A2)-(0.9*B2))*C2,IF(E2<2,(A2-B2)*0.4*C2,IF(3>E2>=2,(0.5*A2-0.6*B2)*C2,))))
※ 朋友告訴我原來在 Excel 可以這樣寫「3>E2>=2」, 要不然還是很難直覺性的寫出判斷。
看懂了嗎?
IF(E2<2,(A2-B2) *0.4 *C2,)
這段式是第一段 False 所執行的巢狀程式喔!
對了!要補充一點,按照微軟的說法,IF這個函數最多隻能使用 「七層巢狀程式」,超過七層會發生什麼?目前沒試過,假如有 人有實際經驗,再麻煩回覆留言分享一下囉! ^^~
我猜,在「IF (3>E2>=2,(0.5*A2-0.6*B2)*C2,)」這段,有人一 定會覺得奇怪,怎麼會多了個逗號?嗯!這就是小的我疏忽的經 驗談,當這短短的程式寫完後,突然視窗出現語法錯誤的訊息, 不管我怎麼找,都覺得應該沒錯啊?但,還是要注意一下喔!那 就是,即使你後面沒有 False要執行的判斷,別忘記在寫法要完 整結束,請加上「逗號」,讓函數完整,不然!Excel 是不會輕 易讓您過關的。
以上,就是小的我在這次的經驗分享,這次沒想到會在這個工具 上花掉不少時間除錯,果然,以前 Excel已經還給老師不少東西 了,藉由這次的經驗值獲得,寫了這篇教學,希望各位還看得懂 ,當然!我不是程式好手,可能端出了一個不是很好的菜色。僅 當作自己以後查看方便之用。
對了! Excel太久沒用,突然還忘記該如何「取消隱藏」,幸好 朋友相當有經驗的告訴我,又剛好替自己解惑囉!
例如: E欄,整欄隱藏,假如要「取消隱藏」,請將「D」、「F」兩欄 全選,再選擇「取消隱藏」這樣一來,E欄又出現囉!^0^/
果然?我那時候 Excel已經全部忘光了啊!真是糟糕啊!
好吧!拉哩拉雜寫了這麼多,單純的隻是要提醒自己要不斷地學 習做筆記,要不然以後碰到問題,看來又得翻一堆網路文件,強 迫自己倒也不是壞事。現在每天都非常認真的學習各樣事務,感 覺收穫真不少,雖有時候會被整得昏頭轉向,不過,靜下心來逐 一處理事情,也是件不易學習的情緒管理哩!
現在每天都過得很快樂,我想?築夢踏實或許正是此意吧?^0^/
Paul
2007.03.08
|
|