今回はMicrosoft Excel(以下、Excel)の日付・時間にまつわる関数を総まとめでご紹介します。
前編に続いて後編では難易度を上げて、知っているとExcel上級者になれる「ワンランク上の関数」を解説します。難易度が高く、混乱することもあるかもしれません。落ち着いてひとつずつ理解して、まずは実践してみることを意識してみましょう。
前編はこちら
今回の記事では、以下の図のD~Fグループをご紹介します。
「○月○日から○月○日」までの日数を計算する8つの関数
ある日付からある日付までの日数を計算する関数(Dグループ)は全部で以下の8つ。
・DAYS関数
・DAYS360関数
・DATEDlF関数
・YEARFRAC関数
・NETWORKDAYS関数
・NETWORKDAYS.INTL関数
・WORKDAY関数
・WORKDAY.INTL関数
それでは一つひとつ確認していきましょう。
DAYS関数・DAYS360関数・DATEDlF関数・YEARFRAC関数
以下の4つの関数は、2つの日付間の日数、月数などを計算して、それが1年のどれくらいの割合を占めているかなどを算出します。
DAYS関数 :=DAYS(終了日, 開始日)
DAYS360関数:=DAYS360(開始日,終了日,[方式])
DATEDlF関数 :=DATEDlF(開始日,終了日,単位)
YEARFRAC 関数 :=YEARFRAC(開始日, 終了日, [基準])
それぞれ微妙に違うので、以下の例を参照ください。DAYS関数はシンプルに日付間の日数を出してくれます。DAYS360関数は使用するシーンは多くないかもしれません。しかし、欧米の会計システムでは1年を360日としていろいろな計算を行うため、このような関数が設けられています。日本は1年を実際の日数で計算することがほとんどですので、DAYS360関数はあまり気にしなくてもいいでしょう。
DATEIF関数は表示する単位を指定できます。単位に「D」を指定すれば、DAYS関数と同じ結果が得られます。YEARFRAC関数は2つの日付間の日数が「1年間でどれくらいの割合を占めるのか」が計算できます。
WORKDAY関数・WORKDAY.INTL関数・NETWORKDAYS関数・NETWORKDAYS.INTL関数
以下の4つの関数は、営業日数を計算する関数です。
WORKDAY関数 :=WORKDAY(開始日, 日数, [祭日])
WORKDAY.INTL関数 :=WORKDAY.INTL(開始日, 日数, [週末], [祭日])
NETWORKDAYS関数 :=NETWORKDAYS(開始日, 終了日, [祭日])
NETWORKDAYS.INTL関数 :=NETWORKDAYS(開始日, 終了日, [祭日])
これだけでは違いがよくわからないので、使い方をざっくりとまとめてみました。
WORKDAY関数は「=WORKDAY(開始日, 日数, [休日])」で定義されます。たとえば、開始日「2019/12/27」、日数「3」とした場合に得られる結果は「2020/1/1」となります。第3の引数「祭日」は省略可ですが、指定すればそこを除いた営業日を計算してくれます。
以下では祭日(12/31~1/3)を指定しているので、開始日・日数が同じでも得られる結果が「2020/1/7」となります。
一方WORKDAY.INTL関数(=WORKDAY.INTL(開始日, 日数, [週末], [祭日]))は、土日が営業日で定休日が平日にある場合に使える関数です。飲食店や美容院などのサービス業種などで用いられることが多い関数です。
基本的な使い方はWORKDAY関数と同じです。1点だけ違うのが第3の引数「週末」の部分。ここに入れる値により、「何曜日を休みにするのか」が変わってきます。
【週末番号と曜日】
1:土曜日、日曜日
2:日曜日、月曜日
3:月曜日、火曜日
4:火曜日、水曜日
5:水曜日、木曜日
6:木曜日、金曜日
7:金曜日、土曜日
11:日曜日
12:月曜日
13:火曜日
14:水曜日
15:木曜日
16:金曜日
17:土曜日
週末番号で表すこともできますし、文字列でも休日を指定することができます。
NETWORKDAYS関数とNETWORKDAYS.INTL関数は、2つの日付間の営業日数を計算します。使い方は「開始日」と「終了日」を指定。休日の扱いはWORKDAY関数・WORKDAY.INTL関数と同じです。
NETWORKDAYS関数 :=NETWORKDAYS(開始日, 終了日, [祭日])
NETWORKDAYS.INTL関数 :=NETWORKDAYS(開始日, 終了日, [祭日])
ある日付から○ヶ月後の日付を計算するEDATE関数・EOMONTH関数
EDATE関数は開始日から○ヶ月後の日付を表示してくれる関数。EOMONTH関数は○ヶ月後の月末の日付を表示します。ちなみに、EOMONTHは「End Of MONTH」の略です。
EDATE関数 :=EDATE(開始日, 月)
EOMONTH関数 :=EOMONTH(開始日, 月)
何曜日、年初から数えて何週目にあたるかを計算する関数
WEEKDAY関数は「何曜日にあたるか」、WEEKNUM関数・ISOWEEKNUM関数は「年初から数えて何週目にあたるか」を数値で表示する関数です。
WEEKDAY関数 :=WEEKDAY(シリアル値,[週の基準])
WEEKNUM関数 :=WEEKNUM(シリアル値,[週の基準])
ISOWEEKNUM関数 :=ISOWEEKNUM(日付)
WEEKDAY関数の引数「週の基準」は省略できます。省略した場合は、日曜日を週の初めとして、日曜日→1」「月曜日→2」…というふうに表示されます。WEEKNUM関数の「週の基準」も同様で、省略すると日曜日を週の初めとして計算が行われます。
ISOWEEKNUM関数は、「週の基準」の引数はなく、週の始まりが月曜日として計算されます。上記の例において、「2020/1/5」はWEEKNUM関数とISOWEEKNUM関数では結果が異なることを確認しておきましょう。
あらゆる関数を用いて日付と時間を自由自在に扱おう
日付と時間にまつわる関数の全25個を一挙に解説させていただきました。ポイントは、一つひとつの関数を独立して覚えるのではなく、機能グループごとに覚えることです。
「全体から一部を抽出(Bグループ)」⇔「ばらばらの値を1つにまとめる(Cグループ)」というように反対の関係にあることを意識することも大切です。
関数が使えるようになればExcelがもっと楽しくなるので、積極的に使ってみてはいかがでしょうか。
前編:【Excel】日付・時間のExcel関数総まとめ(前編)! カレンダーやスケジュール作成を時短で
【参考記事】
Excel(エクセル)記事まとめ
覚えておけば残業知らず!Excel時短記事まとめ
見づらい資料からサヨナラ!Excel資料作成記事まとめ
覚えて仕事を効率化!Excel関数記事まとめ
PowerPoint(パワーポイント)記事まとめ
あなたの本当の年収がわかる!?
わずか3分であなたの適正年収を診断します
