はじめに
MacのNumbersはMicrosoftのExcelのような表計算ソフトです。今回紹介するのは,セルに書かれている2つの日付間の差を計算するDATEIDIF関数です。
フォーマット
関数のフォーマットは次の通り。計算方法を指定することで,年月日の差を取得することができます。
=DATEDIF(開始日,終了日,計算方法)
計算方法は年,月,日などを指定することができます。(Numbersのヘルプから引用)
“D”: 開始日と終了日の間の日数を返します。
“M”: 開始日と終了日の間の月数を返します。
“Y”: 開始日と終了日の間の年数を返します。
“MD”: 開始日と終了日の間の日数を、月と年は無視して返します。「終了日」の月は、「開始日」の月とみなされます。開始日が終了日より後にある場合、終了日は前の月の日付とみなされ、カウントは終了日から始まります。「終了日」の年は、閏年の確認に使用されます。
“YM”: 開始日と終了日の間の満月数を、年は無視して返します。開始月日が終了月日より前にある場合、日付は、それらが同じ年にあるものとして処理されます。開始月日が終了月日より後にある場合、日付は、それらが連続する年にあるものとして処理されます。
“YD”: 開始日と終了日の間の日数を、年は無視して返します。開始月日が終了月日より前にある場合、日付は、それらが同じ年にあるものとして処理されます。開始月日が終了月日より後にある場合、日付は、それらが連続する年にあるものとして処理されます。
使用例
例えば,自分が今何歳か?というのはだいたい覚えていますが,生まれてから何日経ったか?というのは覚えていないことでしょう。このような計算式で求めることができます。
1998年7月20日生まれの人が,2018年4月1日現在で何歳なのかを計算してみました。
注意事項
DATEDIF関数にはバグがあります。下記のように入力するとなぜか計算結果が負の数になってしまうのです。
このバグはエクセルでもあるみたいで,Microsoftのサイトに紹介されています。
https://support.office.com/ja-jp/article/datedif-関数-25dba1a4-2812-480b-84dd-8b32a451b35c
随分前から指摘されてるバグのようですが,最新版のOffice365でも修正していないということは,修正が難しいか,この関数はあまり使われていないから放置されているのかのどちらかですね。なんでこんな計算結果になるのかを考察しているサイトもありましたが,難しいので読むのを途中で諦めました(笑)。