今天分享的閏年公式是延伸「閏年與Excel 1900/1904日期系統」的內容,如果同學想要更了解閏年的來由,可以先看前篇的說明,建議先建立概念後再來看這篇「閏年公式」。
本篇只介紹公式,如果是單純想了解公式的同學,就直接看這篇吧。
*關於整串公式,有四篇的函數教學,此篇為4/4。
△ 判斷年份是否為閏年
[函數] =IF(OR(A3-ROUNDDOWN(A3/400,0)*400=0,AND(A3-ROUN DDOWN(A3/4,0)*4=0,A3-ROUNDDOWN(A3/100,0)*100<>0)),"閏年","平年")
△ 由外往內 (先從IF函數開始)
● 主架構是IF函數,IF函數是最外面的括弧。
🡺 IF函數:符合此條件「OR(A3-ROUNDDOWN(A3/400,0)*400=0,AND(A3-ROUNDDOWN(A3/4,0)*4=0,A3-ROUNDDOWN(A3/100,0)*100<>0))」,會回傳「閏年」,若不符合則回傳「平年」。
上圖:「函數引數」內的「Logical_test」結果「FALSE/不符合」,所以計算結果為「平年」。
● IF函數內的條件,有2組條件。
[條件1]
🡺 OR函數:「OR(A3-ROUNDDOWN(A3/400,0)*400=0」。
說明:符合OR函數內的公式,就等於閏年。若不符合,會跳到條件2計算。
上圖:可以從「函數引數」內的結果「FALSE」看出,條件1、條件2都不符合。
[條件2]
🡺 AND函數:「AND(A3-ROUNDDOWN(A3/4,0)*4=0,A3-ROUNDDOWN(A3/100,0)*100<>0)」
🡺第1小條件:「AND(A3-ROUNDDOWN(A3/4,0)*4=0,」。
🡺第2小條件:「,A3-ROUNDDOWN(A3/100,0)*100<>0))」。
說明:AND函數內有另外2個小條件,需同時符合這兩個條件,才會回傳閏年。若不符合,則回傳平年。
上圖:「函數引數」內的結果,可以看出條件2裡的2個小條件,只有第1小條件符合(TRUE),但第2小條件(FALSE)不符合,所以最後結果為「FALSE」。
補充:條件2裡的2個小條件需同時符合,最終結果才會是「TRUE」。
KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG
補充說明:
一、可互相通用的公式
「A3-ROUNDDOWN(A3/400,0)*400」等於「MOD(A3,400)」
邏輯:可以計算引數在400的倍數中,整除後所剩餘的餘數。
前者,是直覺式的公式呈現,後者,是精簡版的公式。兩者公式是一樣的。
其實小本比較喜歡前者,直覺化的方式呈現,因為比較好理解。
但是,如果同學寫的公式過長,想要精簡化,可以使用後者,讓整串公式看起來較簡潔。
參考下圖:
*請參考:2019/08/18 Excel函數-031_mod-數學與三角函數
二、公式中「<>」
公式「A3-ROUNDDOWN(A3/100,0)*100<>0」
此串公式中,使用了「<>」,表示「不等於」的意思。
在小時候學到的大於等於符號,其實是一樣的,不要想得太複雜。
我們來看以下運算符號:
「<」小於 / 「>」大於 / 「=」等於 /「<>」不等於
「<=」小於等於 / 「>=」大於等於
KNB碎碎唸:
從公式中,可以理解閏年計算的邏輯,KNB得到的結論是「可以被400整除的西元年份,為閏年;另外,西元年份可以被4整除,並同時無法被100整除,才會算是閏年。若不符合上述400、4、100的條件,皆為平年。」
同學可以試看看,明年2020年是不是閏年呢?
函數說明:
1. 2019/08/18 Excel函數-031_mod-數學與三角函數
2. 2019/08/18 Excel函數-032_or-邏輯
3. 2019/08/18 Excel函數-033_and-邏輯
延伸閱讀:
1. 2019/08/11 Excel技巧-022_閏年與Excel 1900/1904日期系統
2. 2019/04/25 Excel函數-011_if-函數
3. 2019/04/21 Excel函數-010_rounddown-數學與三角函數
本篇只介紹公式,如果是單純想了解公式的同學,就直接看這篇吧。
*關於整串公式,有四篇的函數教學,此篇為4/4。
△ 判斷年份是否為閏年
[函數] =IF(OR(A3-ROUNDDOWN(A3/400,0)*400=0,AND(A3-ROUN DDOWN(A3/4,0)*4=0,A3-ROUNDDOWN(A3/100,0)*100<>0)),"閏年","平年")
△ 由外往內 (先從IF函數開始)
● 主架構是IF函數,IF函數是最外面的括弧。
🡺 IF函數:符合此條件「OR(A3-ROUNDDOWN(A3/400,0)*400=0,AND(A3-ROUNDDOWN(A3/4,0)*4=0,A3-ROUNDDOWN(A3/100,0)*100<>0))」,會回傳「閏年」,若不符合則回傳「平年」。
上圖:「函數引數」內的「Logical_test」結果「FALSE/不符合」,所以計算結果為「平年」。
● IF函數內的條件,有2組條件。
[條件1]
🡺 OR函數:「OR(A3-ROUNDDOWN(A3/400,0)*400=0」。
說明:符合OR函數內的公式,就等於閏年。若不符合,會跳到條件2計算。
上圖:可以從「函數引數」內的結果「FALSE」看出,條件1、條件2都不符合。
[條件2]
🡺 AND函數:「AND(A3-ROUNDDOWN(A3/4,0)*4=0,A3-ROUNDDOWN(A3/100,0)*100<>0)」
🡺第1小條件:「AND(A3-ROUNDDOWN(A3/4,0)*4=0,」。
🡺第2小條件:「,A3-ROUNDDOWN(A3/100,0)*100<>0))」。
說明:AND函數內有另外2個小條件,需同時符合這兩個條件,才會回傳閏年。若不符合,則回傳平年。
上圖:「函數引數」內的結果,可以看出條件2裡的2個小條件,只有第1小條件符合(TRUE),但第2小條件(FALSE)不符合,所以最後結果為「FALSE」。
補充:條件2裡的2個小條件需同時符合,最終結果才會是「TRUE」。
KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG
補充說明:
一、可互相通用的公式
「A3-ROUNDDOWN(A3/400,0)*400」等於「MOD(A3,400)」
邏輯:可以計算引數在400的倍數中,整除後所剩餘的餘數。
前者,是直覺式的公式呈現,後者,是精簡版的公式。兩者公式是一樣的。
其實小本比較喜歡前者,直覺化的方式呈現,因為比較好理解。
但是,如果同學寫的公式過長,想要精簡化,可以使用後者,讓整串公式看起來較簡潔。
參考下圖:
*請參考:2019/08/18 Excel函數-031_mod-數學與三角函數
二、公式中「<>」
公式「A3-ROUNDDOWN(A3/100,0)*100<>0」
此串公式中,使用了「<>」,表示「不等於」的意思。
在小時候學到的大於等於符號,其實是一樣的,不要想得太複雜。
我們來看以下運算符號:
「<」小於 / 「>」大於 / 「=」等於 /「<>」不等於
「<=」小於等於 / 「>=」大於等於
KNB碎碎唸:
從公式中,可以理解閏年計算的邏輯,KNB得到的結論是「可以被400整除的西元年份,為閏年;另外,西元年份可以被4整除,並同時無法被100整除,才會算是閏年。若不符合上述400、4、100的條件,皆為平年。」
同學可以試看看,明年2020年是不是閏年呢?
函數說明:
1. 2019/08/18 Excel函數-031_mod-數學與三角函數
2. 2019/08/18 Excel函數-032_or-邏輯
3. 2019/08/18 Excel函數-033_and-邏輯
延伸閱讀:
1. 2019/08/11 Excel技巧-022_閏年與Excel 1900/1904日期系統
2. 2019/04/25 Excel函數-011_if-函數
3. 2019/04/21 Excel函數-010_rounddown-數學與三角函數
留言
張貼留言