開始日:A1セル
終了日:B1セルの場合
日付から日数を計算する方法
おすすめな方法:=B1-A1
その他の方法1:=DAYS(A1,B1)
その他の方法2:=DATEDIF(A1,B1,”D”)
営業日の日数を計算する方法
「土日」を休みとして計算:=NETWORKDAYS(A1,B1,祭日)
休みの曜日を自由に指定:=NETWORKDAYS.INTL(A1,B1,曜日,祭日)
※どちらも祭日を自由に追加することが可能です
週数を計算する方法
日数を計算して7で割り、小数点以下を切り捨てる。
おすすめな方法:=INT(B1-A1/7)
その他の方法:=ROUNDDOWN(B1-A1/7,0)
月数を計算する方法
おすすめな方法:=DATEDIF(A1,B1,”M”)
その他の方法:=(YEAR(B1)*12+MONTH(B1))-(YEAR(A1)*12+MONTH(A1))
年数を計算する方法
おすすめな方法:=YEAR(B1)-YEAR(A1)
その他の方法:=DATEDIF(A1,B1,”Y”)
エクセルで2つの日付データから日数や営業日を計算したいことがよくあります。
また計算結果を「週単位」「月単位」「年単位」に変換したい場面も出てきますよね。
この記事では数ある日数計算の方法のうち、もっとも正確で速く行える計算方法を厳選して紹介します。
この記事ではExcelCamp講師が研修で実際に説明している手順に沿って、解説いたします。
日付から「日数」を計算する方法
日数計算を行う方法
おすすめな方法:=B1-A1
その他の方法1:=DAYS(A1,B1)
その他の方法2:=DATEDIF(A1,B1,”D”)
エクセルで「日付」データは数値として扱うことができます。
たとえば図のように「日付-1」をいう式を書いてEnterキーを押すと昨日の日付になります。
これはエクセル上で日付データが「シリアル値」という数値で管理されているからです。
日付は数値と同じように扱うことができるため、日付同士の引き算も可能です。
Enterキーを押せば、2つの日数の差である「1」が結果に表示されます。
このように単純に引き算を書くだけで、2つの日付間の日数を計算することができます。
下で紹介するDAYS関数、DATEDIF関数でも同じ結果が得られますが、基本的にはそのまま引き算したほうが入力がラクでおすすめです。
補足:DAYS関数で日数計算する方法
DAYS関数の書き方
=DAYS(終了日,開始日)
関数の機能:終了日から開始日までの日数を表示する
日数計算をするための関数は、DAYS関数というものがあります。
書き方は簡単で終了日、開始日の順にセルを指定するだけです。
最後の)は省略可能です。Enterキーを押すと日数の差「1」が表示されます。
ただ、単純に引き算する方法と全く同じプロセスの計算です。
関数名を書く手間を考えれば、わざわざDAYS関数を使う必要はありません。
補足:DATEDIF関数で日数計算する方法
DATEDIF関数の書き方
=DATEDIF(開始日,終了日,単位)
開始日:開始日を入力
終了日:終了日を入力
単位:「年数」なら“Y”、「月数」なら“M”、「日数」なら“D”
DATEDIF関数はDAYS関数同様、日数の差を計算する関数ですが、計算結果を「日数」「月数」「年数」から選択することができます。
DATEDIF関数の場合は「開始日、終了日」の順に指定します。DAYS関数とは指定の順番が逆なのでご注意ください。
最後「単位」に“D”と入れれば日数の計算結果が表示されます。
単位に“M”と入れれば月数、“Y”といれれば年数が結果として表示されます。
日付から「営業日数」を計算する方法
営業日の日数を計算する方法
「土日」を休みとして計算:=NETWORKDAYS(A1,B1,祭日)
休みの曜日を自由に指定:=NETWORKDAYS.INTL(A1,B1,曜日,祭日)
※どちらも祭日を自由に追加することが可能です
実務では単純な日数ではなく「営業日」の日数を計算したい場面も多いですよね。
営業日の日数を計算するにはNETWORKDAYS関数を使います。
休日を「土日」とするかそれ以外の曜日にするかで関数が2種類存在するのでそれぞれ解説します。
土日が休日の場合:NETWORKDAYS関数
NETWORKDAYS関数の書き方
=NETWORKDAYS(開始日,終了日,祭日)
開始日:開始日を入力
終了日:終了日を入力
祭日:土日以外の祝日を指定
1週間のうち土日が休日の場合は、NETWORKDAYS関数を使って営業日数を計算してください。
せっかくなので、ExcelCamp流に「最速」の書き方を紹介します。
まず、セルに=netとだけ書きます。
すると関数候補の一番上にNETWORKDAYS関数が表示されるので、Tabキーを押してください。
自動で関数名を書くことができます。
あとは,(半角カンマ)を打ちながら、開始日,終了日の順にセルを参照します。
「祭日」には土日以外の祝日を指定します。以下のように祝日の表を用意しておくとセル参照で一気に指定ができて便利です。
最後にEnterキーを押せば、土日と祝日を除いた平日の数(営業日数)を計算することができます。
祝日カレンダーは何かと便利なので、以下の表をコピーして使ってください。
2023年祝日カレンダー(コピーして活用ください)
祝日 | 祝日名 |
---|---|
2023/1/1 | 元日 |
2023/1/2 | 振替休日 |
2023/1/9 | 成人の日 |
2023/2/11 | 建国記念の日 |
2023/2/23 | 天皇誕生日 |
2023/3/21 | 春分の日 |
2023/4/29 | 昭和の日 |
2023/5/3 | 憲法記念日 |
2023/5/4 | みどりの日 |
2023/5/5 | こどもの日 |
2023/7/17 | 海の日 |
2023/8/11 | 山の日 |
2023/9/18 | 敬老の日 |
2023/9/23 | 秋分の日 |
2023/10/9 | スポーツの日 |
2023/11/3 | 文化の日 |
2023/11/23 | 勤労感謝の日 |
土日以外が休日の場合:NETWORKDAYS.INTL関数
NETWORKDAYS.INTL関数の書き方
=NETWORKDAYS.INTL(開始日,終了日,週末,祭日)
開始日:開始日を入力
終了日:終了日を入力
週末:「休みの曜日」を指定
祭日:「休みの曜日以外」の祝日を指定
毎週の休みが土日ではない場合、NETWORKDAYS.INTL関数(ネットワークデイズ・インターナショナル関数)を使います。
「週末」には以下の表に従って休みの曜日に対応する数値を指定します。
週末(休みの曜日) | 数値 | 数値(省略形) |
---|---|---|
土日 | “0000011” | 1(または空白) |
日月 | “1000001” | 2 |
月火 | “1100000” | 3 |
火水 | “0110000” | 4 |
水木 | “0011000” | 5 |
木金 | “0001100” | 6 |
金土 | “0000110” | 7 |
日のみ | “0000001” | 11 |
月のみ | “1000000” | 12 |
火のみ | “0100000” | 13 |
水のみ | “0010000” | 14 |
木のみ | “0001000” | 15 |
金のみ | “0000100” | 16 |
土のみ | “0000010” | 17 |
省略形のほうはガイドが出るので↑キー、↓キーで選択してTabキーで確定することで簡易的に入力が可能です。
0と1の7桁で表記されている数値には以下のルールがありますので、ガイドにない休日パターンも自由に指定できます。
なので例えば土日が休みなら「0000011」、月火が休みなら「1100000」となります。
「1010100」であれば「月水金」が休みと指定できます。
NETWORKDAYS関数との違いは「休日の指定」を自由にできることだけです。
その他「開始日」「終了日」「祭日」の指定方法は全く同じなので、説明は省略します。
日付から「週数」を計算する方法
週数を計算する方法
方針:日数を計算して7で割り、小数点以下を切り捨てる。
おすすめな方法:=INT(B1-A1/7)
その他の方法:=ROUNDDOWN(B1-A1/7,0)
ある日付間の日数ではなく「週数」を数えたい場合の計算も単純です。
日数を計算し、その数字を7で割った上で小数点を切り捨てることで計算できます。
まずは日数を計算します。
計算結果が出たら、F2キーでセルの中に入ります。
※PCによってはFnキーを押しながらF2キーを押す必要があります。
下の図のように、H14-H13の外側に()をつけて、/7と入力します。
最後に小数点以下を切り捨てます。INT関数かROUNDDOWN関数のどちらかを使ってください。
INT関数の場合、このように書きます。
ROUNDDOWN関数の場合はこう書きます。
最後にEnterキーを押すことで週数が計算できます。
INT関数の書き方
小数点以下をすべて切り捨てる関数
=INT(数値)
ROUNDDOWN関数の書き方
指定した桁数以下を切り捨てる関数
=ROUNDDOWN(数値,桁数)
2つの関数の違いは「切り捨てる桁数を選べるかどうか」です。
今回は小数点以下を切り捨てたいのでINT関数のほうが入力打数が少なくて効率的です。
日付から「月数」を計算する方法
月数を計算する方法
おすすめな方法:=DATEDIF(A1,B1,”M”)
その他の方法:=(YEAR(B1)*12+MONTH(B1))-(YEAR(A1)*12+MONTH(A1))
次に「月数」を計算する方法を紹介します。
おすすめなのはDATEDIF関数を使った方法です。
単位を“M”にすれば、月単位で計算結果を表示してくれます。
「Month(月)」の頭文字と覚えるとよいですね。
一応DATEDIF関数の書き方を再掲します。
DATEDIF関数の書き方
=DATEDIF(開始日,終了日,単位)
開始日:開始日を入力
終了日:終了日を入力
単位:「年数」なら“Y”、「月数」なら“M”、「日数」なら“D”
補足:YEAR関数とMONTH関数を使って計算する方法
DATEDIF関数はExcelのバージョンによっては使えないことがありますし、そもそもExcelのオプションから設定を変更しなければ正しい数値が計算されません。
Excelのオプションから「詳細設定」タブ内の「次のブックを計算するとき(H)」にある1904年から計算する(Y)にチェックを入れる必要があります。
上記Excelのオプションを変更すると、すでに入力されていた日付の値がずれるため、DATEDIF関数の使い所には注意が必要です。
なのでDATEDIF関数を使わずに月数を計算する方法も紹介しておきます。YEAR関数とMONTH関数を組み合わせた方法です。
たとえば2023年2月12日~2023年9月30日の月数を計算します。
まず、2023年9月30日の月数を計算します。
YEAR関数で年数を抜き出し、12をかけることで「月数」に変換しています。その数値にMONTH関数で抜き出した「月数」を足しています。
同じ計算を2023年2月12日についても行い、両者を引き算することで月数を求めることができます。
開始月を月数に含めたい場合は、最後に+1をしてください。
日付から「年数」を計算する方法
年数を計算する方法
おすすめな方法:=YEAR(B1)-YEAR(A1)
その他の方法:=DATEDIF(A1,B1,”Y”)
最後に日付間の「年数」を計算する方法を解説します。
YEAR関数を使えば簡単にできます。
開始年の「2023年」も年数に含めたい場合は、最後に+1を書けばOKです。
最後にEnterキーを押せば、2023年~2025年の年数である「3」が結果に表示されます。
補足:DATEDIF関数を使って年数を計算する方法
DATEDIF関数の「単位」を“Y”にすることで年数を計算することもできます。
「Year(年)」の頭文字と覚えるとよいですね。
ただ関数を書く手間を考えれば、YEAR関数で引き算したほうが効率的です。
休日「1日」を投資して、平日の生産性を最大「20倍」にするExcel研修
私たちが提供するExcel研修「上位1%を目指す!ExcelCamp」では、これまで延10,000名以上の方に研修を受講いただき、受講者満足度は9.71(※)という大変高い評価を頂いております。
※10点満点中の評価の平均値。
休日1日を研修に使うのは「やや重たい」というご意見もいただきます。
しかし、本当にExcelスキルを実践で使えるレベルで高めるとなると、通常数年はかかるものです。
実際にExcelCampで教える内容は、代表の中田が業務コンサルタントとして数年間、毎日10時間以上Excelと向き合った結果ようやく生まれたスキルです。
そのことを考えると、休日の「たった1日」を投資して、その後のExcel業務の生産性を圧倒的に高めることは決して悪くない選択だと思います。
参加者の中にはお伝えしたスキルを仕事の現場で活かし、生産性が「20倍」になったという事例もあります。
動画サービス「bizplay(ビズプレイ)」で研修の一部を無料公開中!
※全4回の動画のダイジェスト版です。
※第1~4回の内容をフルで視聴するには、bizplayへの無料会員登録が必要です。
現在セミナー動画見放題サービス「bizplay」で、ExcelCamp Day1の講義内容の一部を無料配信しています。
全4回に分けてExcelが得意になるための考え方や覚えておくべき基本操作を解説していますので、Day1への参加を迷われている方はぜひ一度ご覧ください。