2 つの日付の差を計算します。 Microsoft Excelでの日付の差異の計算

美しさ 20.10.2019
美しさ

Excel シート上で数値、グラフ、画像だけでなく日付も操作している場合は、それらの差を計算する必要がある状況に遭遇したことがあるでしょう。 たとえば、特定の期間の日数や月数を決定したり、結果が日、月、年で表されるように人の年齢を計算したり、勤務日数を正確に計算したりする必要がある場合があります。

Excelで差分を計算する記事がすでにサイトにありますが、その中で日付について少し触れました。 ここで、この問題をさらに詳しく見て、2 つの日付の間の日数を計算する方法を考えてみましょう。 簡単な方法でまたは RAZNDAT() 関数を使用する方法と、稼働日数を決定する方法について説明します。

方法 1: 減算

最も単純なことから始めましょう。1 つの日付から 2 番目の日付を引いて、必要な値を取得します。 この作業を行う前に、数値が書き込まれているセルの形式が「日付」であることを確認してください。

まだ入力していない場合は、操作したい範囲を選択し、「数値」グループ名の横にある小さな矢印をクリックします。

左側に表示されるウィンドウで、適切な形式を選択し、メイン領域でタイプを決定します: 03/14/12、14 Mar 12、またはその他。 「OK」をクリックします。

形式を変更したばかりのセルにデータを入力します。 A1とB1に記入しました。 ここで、一般的なデータ形式が設定されているセル (D1) を選択する必要があります。選択しないと、計算が正しく行われません。 「=」を入れて、最初に遅い日(B1)を押し、次に早い日(A1)を押します。 その間の日数を計算するには、「Enter」を押します。

方法 2: 関数を使用する

これを行うには、結果が入るセル (B3) を選択し、そのセルに一般的な形式が選択されていることを確認します。

日数を計算するには、AZNDAT() 関数を使用します。 これには、開始日と終了日、1 つの 3 つの引数が含まれます。 Unit は結果を取得したいものです。 ここで置き換えます:

「d」 – 日数。
「m」 – 満月の数。
「y」 – 満年数。
「md」 – 月と年を考慮せずに日数を数えます。
「yd」 – 年だけを考慮せずに日数を数えます。
「ym」 – 年を考慮せずに月を数えます。

B3 に等号を入れ、RAZNDAT と書き、括弧を開きます。 次に、初期の日付 (A1)、次に最新の日付 (B1) を選択し、適切な単位を引用符で囲んで括弧を閉じます。 すべての引数の間に「;」を置きます。 。 計算するには「Enter」を押してください。

この式を思いつきました。

RAZNDAT(A1;B1;"d")

単位として「d」を選択すると、結果は 111 になりました。

変更する場合 与えられた値たとえば、「md」の場合、数式は月と年を考慮せずに 5 と 24 の差を計算します。

この議論をこのように変形すると、その人の正確な年齢を導き出すことが可能になります。 1 つのセルには、年が「y」、2 番目の月が「ym」、3 日目が「md」になります。

方法 3: 稼働日をカウントする

たとえば、この標識を考えてみましょう。 列 A には月の初めまたはカウントダウンの開始日があり、B 列には月の終わりまたはカウントダウンが表示されます。 この関数は土曜日と日曜日を考慮せずに営業日をカウントしますが、月には休日もあるので、C 列に対応する日付を入力します。

ネットワークデイズ(A5;B5;C5)

引数として、開始日 (A5)、次に終了日 (B5) を指定します。 最後の引数は休日 (C5) です。 「;」で区切ります。 。

「Enter」を押すと、例のセル D5 – 21 日に結果が表示されます。

次に、月に複数の休日がある場合を考えてみましょう。 たとえば、1月に 新年そしてクリスマス。 セル(D6)を選択し、そこに「equal」を入力します。 次に、数式バーの文字「f」をクリックします。 窓が開きます 「関数を挿入する」。 「カテゴリ」フィールドで、次を選択します。 「完全なアルファベット順リスト」そしてリストから見つけます 希望の機能。 「OK」をクリックします。

次に、関数の引数を選択する必要があります。 「Start_date」で初期値(A6)を選択し、「End_date」で最終値(B6)を選択します。 最後のフィールドに、括弧 () と引用符 "" の中に休日の日付を入力します。 次に「OK」をクリックします。

その結果、次の関数が得られ、値は週末と指定された休日を考慮せずに計算されます。

ネットワークデイズ(A6;B6;("01/01/17";"01/07/17"))

休日を手動で入力することを避けるために、対応するフィールドで特定の範囲を指定できます。 私の場合はC6:C7です。

稼働日がカウントされ、関数は次のようになります。

ネットワークデイズ(A6;B6;C6:C7)

では、計算してみましょう 先月。 関数を入力し、その引数を入力します。

ネットワークデイズ(A8;B8;C8)

2月の営業日は19日でした。

Excel の他の日付と時刻関数については別の記事を書きました。リンクをたどって読むことができます。

時間間隔の継続時間を計算するには、文書化されていない関数 RAZNDAT( ) , 英語版 DATEDIF()。

RAZNDAT() 関数は EXCEL2007 ヘルプには記載されていません。 関数ウィザード (シフト+ F3 )、欠陥がないわけではありませんが、機能します。

関数の構文:

DATE(開始日; 終了日; 測定方法)

口論 開始日引数の前に来なければなりません 終了日.

口論 測定方法開始日と終了日の間の間隔を測定する方法と単位を決定します。 この引数には次の値を指定できます。

意味

説明

日数の差

丸月の差

満年の差

年を除いた丸月の差

月と年を考慮しない日の差
注意! 一部のバージョンの EXCEL の関数は、開始日の日が終了日の日より大きい場合、誤った値を返します (たとえば、EXCEL 2007 では、2009 年 2 月 28 日と 2009 年 3 月 1 日の日付を比較する場合) 、結果は 1 日ではなく 4 日になります)。 この引数を指定した関数の使用は避けてください。 別の式を以下に示します。

年を除いた日数の差
注意! EXCEL の一部のバージョンの関数は、不正な値を返します。 この引数を指定した関数の使用は避けてください。

以下は 詳しい説明 6 つの引数値すべて 測定方法、および代替の式 (RAZNDAT() 関数は (非常に面倒ですが) 他の式で置き換えることができます。これはサンプル ファイルで行われます)。

サンプル ファイルでは、引数の値は次のとおりです。 開始日独房に置かれる A2 、および引数の値 終了日– 独房の中 B2 .

1. 日数の差(「d」)

数式 =DATEDAT(A2;B2,"d") は、2 つの日付間の単純な日数の差を返します。

例1:開始日 25.02.2007, 終了日 26.02.2007
結果: 1(日)。

この例は、勤続年数を計算するときに RAZNDAT() 関数を注意して使用する必要があることを示しています。 明らかに、従業員が 2 月 25 日と 26 日に働いた場合、その従業員は 1 日ではなく 2 日働いたことになります。同じことが丸月の計算にも当てはまります (下記を参照)。

例2:開始日 01.02.2007, 終了日 01.03.2007
結果: 28(日)

例3:開始日 28.02.2008, 終了日 01.03.2008
結果: 2 (日)、なぜなら 2008 年は閏年です

注記: 営業日のみに興味がある場合は、2 つの日付の間の k は、式 =NETWORKDAYS(B2;A2) を使用して計算できます。

2. 満月の差 ("m")

数式 =DATE(A2;B2;"m") は、2 つの日付の間の完全な月数を返します。

例1:開始日 01.02.2007, 終了日 01.03.2007
結果: 1(月)

例2:開始日 01.03.2007, 終了日 31.03.2007
結果: 0

勤続年数を計算する場合、月の全日を勤務した従業員は丸 1 か月間勤務したものとみなされます。 RAZNDAT() 関数はそうは考えません。

例3:開始日 01.02.2007, 終了日 01.03.2009
結果: 25ヶ月


=12*(年(B2)-年(A2))-(月(A2)-月(B2))-(日(B2)<ДЕНЬ(A2))

注意: MS EXCEL ヘルプ (「年齢の計算」セクションを参照) には、2 つの日付の間の月数を計算するための曲線式があります。

=(年(TDATE())-年(A3))*12+月(TDATE())-月(A3)

TDATE() 関数 - 現在の日付の代わりに、日付 1961/10/31 を使用し、A3 に 1962/11/01 と入力すると、実際には 12 か月と 1 日が経過しているにもかかわらず、数式は 13 を返します (11 月)および 1961 年の 12 月 + 1962 年の 10 か月)。

3. 完全な年の違い ("y")

数式 =DATE(A2;B2;"y") は、2 つの日付間の満年数を返します。

例1:開始日 01.02.2007, 終了日 01.03.2009
結果: 2年)

例2:開始日 01.04.2007, 終了日 01.03.2009
結果: 1(年)

この式は別の式に置き換えることができます。
=IF(DATE(年(B2),月(A2),日(A2))<=B2;
年(B2)-年(A2);年(B2)-年(A2)-1)

4. 年を除いた満月の差(「ym」)

数式 =DASDAT(A2;B2;"ym") は、年を除いた、2 つの日付の間の完全な月数を返します (以下の例を参照)。

例1:開始日 01.02.2007, 終了日 01.03.2009
結果: 1 (月)、なぜなら 終了日 03/01/2009 と変更された開始日 02/01 が比較されます。 2009 (01.02 は 01.03 より小さいため、開始日の年は終了日の年に置き換えられます)

例2:開始日 01.04.2007, 終了日 01.03.2009
結果: 11(月)、なぜなら 終了日 03/01/2009 と変更された開始日 04/01 が比較されます。 2008 (開始日の年は終了日の年に置き換えられます) マイナス1年、 なぜなら 01.04以上01.03)

この式は別の式に置き換えることができます。
=REMAT(C7,12)
細胞内 C7 差額は丸月単位である必要があります (第 2 項を参照)。

5. 月と年を除いた日の差 (「md」)

数式 =DASDAT(A2;B2;"md") は、月と年を考慮せずに 2 つの日付の間の日数を返します。 この引数を指定して RAZNDAT() 関数を使用することはお勧めできません (以下の例を参照)。

例1:開始日 01.02.2007, 終了日 06.03.2009
結果1: 5 (日)、なぜなら 終了日 03/06/2009 と変更された開始日 01 が比較されます。 03 .2009 (01 は 06 より小さいため、開始日の年と月は終了日の年と月に置き換えられます)

例2:開始日 28.02.2007, 終了日 28.03.2009
結果2: 0、なぜなら 終了日 03/28/2009 と変更された開始日 28 が比較されます。 03 .2009 (開始日の年月は終了日の年月に置き換えられます)

例3:開始日 28.02.2009, 終了日 01.03.2009
結果3: 4 (日) - 完全に理解できない不正確な結果。 答えは =1 になるはずです。 また、計算結果はEXCELのバージョンに依存します。

EXCEL 2007 バージョン SP3:

結果 – 143 日! 月に数日以上!

EXCEL2007版:

2009/02/28 と 2009/03/01 の差は 4 日です。

さらに、SP3 を適用した EXCEL 2003 では、数式は 1 日以内に正しい結果を返します。 2009 年 12 月 31 日と 2010 年 2 月 1 日の値の場合、結果は一般にマイナス (-2 日) になります。

上記の引数値を含む数式を使用することはお勧めしません。 この式は別の式に置き換えることができます。
=IF(日(A2)>日(B2);
DAY(MONTH(DATEMONTH(B2,-1),0))-DAY(A2)+DAY(B2);
日(B2)-日(A2))

この式は、md パラメーターを使用した RAZNDAT() の (ほとんどの場合) 同等の式にすぎません。 この式の正しさについては、以下の「RAZNDAT() の曲率についてもう一度」セクションを参照してください。

6. 年を除いた日数の差(「yd」)

数式 =DASDAT(A2;B2,"yd") は、年を除いた 2 つの日付の間の日数を返します。 前の段落で述べた理由により、これを使用することはお勧めできません。

数式 =DATEDAT(A2;B2,"yd") によって返される結果は、EXCEL のバージョンによって異なります。

この式は別の式に置き換えることができます。
=IF(DATE(年(B2),月(A2),日(A2))>B2;
B2-DATE(年(B2)-1,月(A2),日(A2));
B2-DATE(年(B2),月(A2),日(A2)))

RAZNDAT() の曲率についてもう一度

2015 年 3 月 16 日と 2015 年 1 月 30 日の日付の違いを見つけてみましょう。 パラメーター md および ym を指定した RAZNDAT() 関数は、その差が 1 か月と 14 日であると計算します。 これは本当ですか?

RAZNDAT() と同等の式があると、計算の進行状況を理解できます。 明らかに、この場合、日付の間の完全な月数 = 1、つまり 2月中ずっと。 日数を計算するために、関数は終了日を基準とした前月の日数を見つけます。 28 日 (終了日は 3 月、前月は 2 月、2015 年には 2 月は 28 日でした)。 この後、開始日を減算し、終了日を加算します = DAY(MONTH(DATEMONTH(B6,-1),0))-DAY(A6)+DAY(B6)、つまり 28-30+16=14。 私たちの意見では、これらの日付と 3 月のすべての日の間にはまだ丸 1 か月あります。つまり、14 日ではなく 16 日です。 このエラーは、前月の終了日に対する日数が開始日の日数よりも少ない場合に発生します。 この状況から抜け出すにはどうすればよいでしょうか?

月と年を考慮せずに日数の差を計算する式を変更してみましょう。

=IF(DAY(A18)>DAY(B18);IF((DAY(MONTH(DATEMONTH(B18,-1),0))-DAY(A18))<0;ДЕНЬ(B18);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18)+ДЕНЬ(B18));ДЕНЬ(B18)-ДЕНЬ(A18))

新しい関数を適用するときは、日数の差が複数の開始日で同じになることを考慮する必要があります (上の図、日付 01/28-31/2015 を参照)。 他の場合でも、式は同等です。 どのような式を使用すればよいでしょうか? これは、タスクの状況に応じてユーザーが決定します。

Excel で特定のタスクを実行するには、特定の日付の間の経過日数を確認する必要があります。 幸いなことに、このプログラムにはこの問題を解決できるツールがあります。 Excel で日付の差異を計算する方法を見てみましょう。

日付の操作を開始する前に、この形式に合わせてセルを書式設定する必要があります。 ほとんどの場合、日付に似た一連の文字を入力すると、セル自体の書式が再設定されます。 ただし、予期せぬ事態から身を守るために、手動で行うことをお勧めします。


これで、プログラムは選択したセルに含まれるすべてのデータを日付として認識します。

方法 1: 単純な計算

日付間の日数の差を計算する最も簡単な方法は、通常の式を使用することです。


方法 2: RAZNDAT 関数

特別な関数を使用して日付の差を計算することもできます。 ラズンダット。 問題は、関数ウィザードのリストにないため、手動で数式を入力する必要があることです。 その構文は次のようになります。

RAZNDAT(開始日、終了日、単位)

"ユニット"— これは、選択したセルに結果が表示される形式です。 合計が返される単位は、このパラメータに挿入される文字によって異なります。

  • 「y」 - 満年。
  • 「m」 - 完全な月。
  • 「d」 - 日。
  • 「YM」 - 月の差。
  • 「MD」は日数の差です (月と年は考慮されません)。
  • 「YD」は日数の差です(年は考慮されません)。

また、上記の単純な数式方法とは異なり、この関数を使用する場合は、開始日を最初に指定し、終了日を 2 番目に指定する必要があることにも注意してください。 そうしないと、計算が正しくなくなります。


方法 3: 稼働日数の計算

Excel では、2 つの日付間の営業日、つまり週末と祝日を除いた営業日を計算することもできます。 これを行うには、関数を使用します チストラブニ。 前の演算子とは異なり、関数ウィザードのリストに表示されます。 この関数の構文は次のとおりです。

NETWORKDAYS(開始日, 終了日, [休日])

この関数の主な引数は演算子の引数と同じです。 ラズンダット– 開始日と終了日。 オプションの引数もあります 「休日」.

代わりに、非稼働休日がある場合は、その日付を対象期間に置き換える必要があります。 この関数は、土曜、日曜、およびユーザーが引数に追加した日を除く、指定された範囲のすべての日を計算します。 「休日」.


上記の操作を行うと、指定した期間の稼働日数が、以前に選択したセルに表示されます。

ご覧のとおり、Excel は 2 つの日付の間の日数を計算するための非常に便利なツールをユーザーに提供します。 同時に、日数の差を計算する必要があるだけの場合、より最適なオプションは、関数を使用するのではなく、単純な減算式を使用することです。 ラズンダット。 ただし、たとえば、営業日数をカウントする必要がある場合は、この関数が役に立ちます。 ネットワークデイズ。 つまり、いつものように、ユーザーは特定のタスクを設定した後、実行ツールを決定する必要があります。


カレンダーは、長い期間を数えて表示する方法です。
すべての計算は、現在世界中で一般に受け入れられているグレゴリオ暦 (1 年の平均長は 365.2425 日) の枠組み内で実行されます。

過去の計算を行う場合は、日付を確認してください。 現在、グレゴリオ暦とユリウス暦の読み方の差は 13 日ですが、数世紀初期には同じ日付の間の日数は小さく、小さければ小さいほど時代の始まりに近づきました ()。

日付1 . 06 . 1941 04 : 00

22日(日)

21

元の日付

1417

間隔

0

日付間の日数

日付間の数世紀

日付 2 . 05 . 1945 01 : 43

09火

21

1012

終了日 *

3

日付間の営業日

46

日付間の年数

34009

日付間の月数

2040583

日付間の時間

122434980

日付の間の分

3

10

17

1

43

日付間の秒数
年 月 日 時 分

2つの日付の間
日付の分と秒の数は 60 を超えることはできません、入力しました...他の日付パラメータも変更されます
日付の時間数は 23 を超えることはできません。次のように入力しました: ... - 他の日付パラメータも変更されます
注意!
ロシアの祝日は、両方の日付が 2018 年に属する場合にのみ完全に考慮されます。

1 か月の日数は\n31 を超えることはできません
おお!

入力した数字は、想像するのが難しい時間を指します...

ごめん!

これは、悲しいことに、天文学的なプログラムではなく、機能が控えめであることを認識した単純なオンライン計算機です。

別の番号を入力してください。

この小さなスコアボードをもとに作成されました。

これで、夏の始まりまでの日数をカウントするように計算テーブルが構成されました。
関心のある日付の間に経過した日数、または今後経過する日数を計算するには、表の適切なフィールドに日数を入力するだけです。 時間間隔も日付と同様に変更できます。この場合は「日付1」からカウントダウンし、「日付2」が変化します。

計算結果には、変更できない情報の値と指標も表示されます。これらは曜日 (濃い灰色 - 平日、オレンジ - 赤 - 週末) であり、最終的な要約として、年、月、日付で表される日付間の間隔です。日、時間、分。

* スコアボードに、我が国にとって歴史上最も運命的な時期、つまり大祖国戦争の日付の間の日が表示されている場合、それはブラウザで Jawa Script が無効になっており、計算を実行するには Jawa Script を有効にする必要があることを意味します。 2019 内で 稼働日の計算 進行中ですロシアの祝日を考慮して ロシア連邦政府によって承認された週末の移動計画。長期間にわたって 日付間の労働日数の計算は、週5日労働を前提として行われます。.

休日は考慮されませんセルゲイ・オフ


(セオスニュース9)
古代ロシアの最初の千年紀の終わりには、新年は 3 月 1 日に祝われましたが、時間の数え方はユリウス暦に従って行われていたことが確実に知られています。いわゆるマーチスタイル。 1000 年 3 月 1 日の現代暦と古代暦の同じ日付の差は 59+6=65 日でした (ユリウス暦とグレゴリオ暦では 6 日の違いがあります。年の初めからの数字と月の数字が等しい日付は、等しい日付とみなされます)。
1492年、ロシア正教会のモスクワ評議会の決議により、新年(新年)が9月1日に始まるという暦が採用された( 9月のスタイル )、現代の暦との差は9-122=-113日でした。
2世紀後、暦の丸い日付の前夜に、ピョートル大帝はキリストの降誕から計算する暦を導入しました。 ロシアの新年は 1700 年以来 1 月 1 日に祝われてきました(ただし、実際には、現代の暦によれば、この新年は 1700 年 1 月 11 日でした)。 この国は 7208 年から 1700 年になりました。 そのため、1701 年に始まった当時新しい 18 世紀に、ロシアはヨーロッパとほぼ歩調を合わせて参入しました。 年表は以前と同様にユリウス暦に従って実行されたため、ほぼ歩調が合っています。 (日付が変わっただけで、現在はこう呼ばれています) 古いスタイル) 一方、ヨーロッパではすでに部分的にグレゴリオ暦に切り替えられています。
ロシアの現代グレゴリオ暦は 21 世紀になって初めて採用されました。 1918年1月26日:ウラジミール・イリイチ・レーニンは、新しい時間計算への移行に関する人民委員評議会の法令に署名したが、年代は13日ずれた。 古いスタイルに従って日付が記載された最後の州文書は、1918 年 1 月 31 日に発行されました。その翌日は 2 月 14 日でした。
そこで質問は、「2 つの日付の間は何日ありますか?」です。 歴史的な意味では常に解明が必要です...



読むことをお勧めします

トップ