Google SheetsのDATEDIFとNETWORKDAYS:日、月、年での日付の違い

  • これを共有
Michael Brown

本日のブログでは、Google Sheetsで2つの日付の差を計算する方法を紹介します。 日、月、年をカウントするDATEDIF式や、休日がカスタムスケジュールに基づいている場合でも勤務日だけをカウントするNETWORKDAYSを使用する方法について学びます。

多くの表計算ソフトのユーザーは、日付の扱いが難しいと感じています。 しかし、信じられないかもしれませんが、そのための便利で簡単な関数がいくつかあります。 DATEDIF と NETWORKDAYS がその一例です。

    Google SheetsのDATEDIF関数

    関数と同じように、その名前は動作を表します。 DATEDIFも同様で、次のように読まなければなりません。 日付変更線 ではなく 日付入り の略であり 日付変更線 したがって、Google SheetsのDATEDIFは、2つの日付の差を計算します。

    バラバラに分解してみましょう。 この関数は3つの引数を必要とします。

    =DATEDIF(start_date, end_date, unit)
    • 開始日 - 開始点として使用される日付。 以下のいずれかでなければならない。
      • 日付そのものを二重引用符で囲む。 "8/13/2020"
      • 日付のあるセルへの参照。 A2
      • は、日付を返す数式です。 日付け(2020、8、13)
      • 特定の日付を表す数値で、Google Sheets で日付として解釈できるもの、例. 44056 表す 2020年8月13日 .
    • 終了日 - エンドポイントとして使用される日付。 開始日 .
    • ユニット - は、どのような差を返すかを関数に指示するために使用します。 使用できる単位の一覧は以下のとおりです。
      • "D" - 略して 日間 ) は、2 つの日付の間の日数を返します。
      • "M" - (月) 2つの日付の間にある満月の数。
      • "Y" - (年) 通算の年数。
      • "MD" - (月を無視した日数)整数月を差し引いた日数。
      • 「ワイディー - (年を無視した日数)整数年を引いた後の日数です。
      • "YM "さん - (年を無視した月数)通年を差し引いた完全な月数です。

    注:すべての単位は、上記の表示方法と同じように、二重引用符で数式に記述する必要があります。

    では、これらのパーツを組み合わせて、Google SheetsでDATEDIF式がどのように機能するかを見てみましょう。

    Google Sheetsで2つの日付の間の日数を計算する

    例1.全日数を数える

    いくつかの注文を追跡するための小さなテーブルを持っています。 8月前半にすべて出荷されています -。 発送日 - また、おおよその納期が決まっています。 期限 .

    日数を計算する-。 "D" - 発送から到着までにかかる時間を確認するために、発送日と到着予定日の間に、以下の計算式を使用します。

    =datedif(b2, c2, "d")

    DATEDIFの数式をD2に入力し、それを列方向にコピーして他の行に適用しています。

    ヒント:ARRAYFORMULAを使えば、いつでも1つの数式で列全体を一度に計算することができます。

    =ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))

    例2.月を無視した日数のカウント

    2つの日付の間に数カ月間があると想像してください。

    日数だけを同じ月のように数えるにはどうしたらよいのでしょうか。 そうです、過ぎ去った月を完全に無視するのです。 "MD" の単位になります。

    =datedif(a2, b2, "md")

    経過月数を引き、残り日数をカウントする関数です。

    例3.年を無視した日数カウント

    また、「YD」という単位は、日付の間隔が1年以上ある場合の補助になります。

    =datedif(a2, b2, "yd")

    この計算式では、まず年を引き、残りの日数を同じ年に属するものとして計算します。

    Google Sheetsで営業日をカウントする

    Google Sheetsでは、勤務日だけを数えるという特殊なケースがあります。 この場合、DATEDIF式はあまり役に立ちません。 また、手動で週末を引くというのは、最もエレガントなオプションではないことに同意していただけると思います。

    幸いなことに、Google Sheetsには、そのための魔法の呪文がいくつか用意されています :)

    例1.NETWORKDAYS機能

    最初のものはNETWORKDAYSと呼ばれるもので、この関数は2つの日付から週末(土曜日と日曜日)、さらに必要に応じて休日を除いた営業日数を計算するものです。

    =NETWORKDAYS(start_date, end_date, [休日])
    • 開始日 - 起点となる日付。 必須。

      注:この日が休日でない場合は、営業日としてカウントされます。

    • 終了日 - エンドポイントとして使用される日付。 必須。

      注:この日が休日でない場合は、営業日としてカウントされます。

    • バカンス - これは、特定の祝日を指定するためのオプションです。 日付の範囲、または日付を表す数字でなければなりません。

    その仕組みを説明するために、出荷日と納期日の間にある休日のリストを追加します。

    つまり、B列が開始日、C列が終了日。 E列の日付は考慮すべき休日です。 以下は、計算式の見方です。

    =networkdays(b2, c2, $e$2:$e$4)

    ヒント:数式を他のセルにコピーする場合、エラーや不正確な結果を避けるために、休日には絶対セル参照を使用します。 または、代わりに配列数式を構築することを検討してください。

    DATEDIF式と比較して、日数が減っていることにお気づきでしょうか? なぜなら、この関数は自動的にすべての土曜、日曜、そして金曜と月曜に行われる2つの祝日を差し引くようになったからです。

    注)Google SheetsのDATEDIFとは異なり、NETWORKDAYSはカウントされます。 開始日 終了日 は、休日でない限り平日として扱われます。 したがって、D7 は 1 .

    例2.Google SheetsのNETWORKDAYS.INTL

    NETWORKDAYS.INTLは、個人的に設定した週末を基に、Google Sheetsの営業日をカウントする機能です。

    =NETWORKDAYS.INTL(start_date, end_date, [週末], [休日])
    • 開始日 - 起点となる日付。 必須。
    • 終了日 - エンドポイントとして使用される日付。 必須。

      注)Google SheetsのNETWORKDAYS.INTLもカウントされます。 開始日 終了日 を、休日を除く勤務日としています。

    • 週末 - これはオプションで、省略した場合は土日が週末とみなされます。 しかし、2つの方法でこれを変更することができます。
      • マスク .

        補足:この方法は、休日が1週間に分散している場合に最適です。

        1は週末、0は平日を表し、最初の1桁は常に月曜日、最後の1桁は日曜日となります。

        例えば、こんな感じです。 "1100110" は、水曜、木曜、金曜、土曜に働くという意味です。

        注)マスクは必ずダブルクォーテーションで囲んでください。

      • 数値 .

        設定された週末のペアを示す1桁の数字(1~7)を使用します。

        番号 ウィークエンド
        1 土曜日、日曜日
        2 日曜日、月曜日
        3 月、火
        4 火・水
        5 水・木
        6 木、金
        7 金曜日、土曜日

        あるいは、1週間のうち休むべき日を示す2桁の数字(11~17)を使って作業することもできます。

        番号 週末
        11 日曜日
        12 月曜日
        13 火曜日
        14 水曜日
        15 木曜日
        16 金曜日
        17 土曜日
    • バカンス - もオプションであり、休日を指定するために使用される。

    この関数は数字が多いので複雑に見えるかもしれませんが、ぜひ試してみてください。

    まずは、自分の休日を明確に把握することだけ にしましょう。 日曜日 月曜日 そして、週末の過ごし方を決めてください。

    マスクで行くと、こんな感じになりますよ〜。 1000001 :

    =networkdays.intl(b2, c2, "1000001")

    しかし、週末が2日続くので、上の表から数字を使うことができる。 2 私の場合

    =networkdays.intl(b2, c2, 2)

    そして、最後の引数-E列の休日を参照-を加えるだけで、計算式は出来上がる。

    =networkdays.intl(b2, c2, 2, $e$2:$e$4)

    Google Sheetsと月単位での日付の違い

    日数よりも月数の方が重要な場合もあります。 そんなときは、Google Sheets の DATEDIF を使ってください。

    例1:2つの日付の間にある満月を表す数

    というドリルは同じです。 開始日 が最初に行き、その後に 終了日 "M" - を最終弁論とする。

    =datedif(a2, b2, "m")

    ヒント:ARRAUFORMULA関数を使うと、すべての行の月数を一度に数えることができるので、忘れないでください。

    =arrayformula(datedif(a2:a13, b2:b13, "m"))

    例2.年数を無視した月数

    開始日と終了日の間にあるすべての年を通して月を数える必要はないかもしれません。 DATEDIFを使えば、そのようなことができます。

    を使うだけです。 "YM "さん を単位とし、計算式はまず整数年を引き、次に日付間の月数を数えます。

    =datedif(a2, b2, "ym")

    Google Sheetsで2つの日付の間の年を計算する

    最後に紹介するのは、Google SheetsのDATEDIFがどのように日付の差を年単位で計算するのかです。

    結婚式の日付と今日の日付から、カップルの結婚年数を計算するんだ。

    すでにお察しの通り、今回は "Y" そのためのユニットです。

    =datedif(a2, b2, "y")

    これらのDATEDIF式はすべて、Google Sheetsで2つの日付の間の日、月、年を計算するときに最初に試すべきものです。

    もし、あなたのケースがこれらで解決できない場合や、何か疑問がある場合は、ぜひ以下のコメント欄で教えてください。

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。