よねさんのWordとExcelの小部屋|Excel(エクセル)基本講座の総目次|Excel(エクセル)関数一覧表|日付の関数
- エクセルでの日付に関する様々な関数について説明しています。
シリアル値
- 日付は1900年1月1日を「1」、1900年1月2日を「2」・・・と、数値で表します。
- 時間・時刻は「1日(24時間)」を「1」として、12:00は「0.5」、6:00は「0.25」と小数点以下の数値で表します。
- なお、WindowsとMacintoshでは、シリアル値の基準が異なります。
- Macintoshでは「1904年1月2日」が「1」となっています。
- WindowsとMacintoshでExcelファイルをやり取りすると、日付がずれる場合があります。
- 【ツール】→【オプション】で【計算方法】タブの『1904年から計算する』にチェックを入れて、シリアル値の起点を変更します。
- 日付データは数値(シリアル値)で管理されていますので 足し算や引き算が可能です。
- なお、日付の入力方法はこちらです→日付の入力)
- (注)セルの表示形式によって表示が異なります。表示の変更は、【書式】→【セル】で変更します。
- 年月日など日付を表示したい時 :表示形式を【日付】
- 日数などシリアル値で表示したい時 :表示形式は【標準】
- 日付の表示形式についてはこちらを参照→日付の表示形式
- 日付のシリアル値
- 既定では、1900年1月1日がシリアル値「 1 」とされて、保存されます。
- 「1900年1月2日」が「2」・・・「2003年5月1日」は「37742」となります。
- 他のソフトとの互換性から1904年1月2日を基準とすることもできます。
その方法は【ツール】→【オプション】の【計算方法】タブで「1904年から計算する」にチェックを入れます。
日付や時刻を表示する topへ
トゥデイ
=TODAY() :今日の日付を表示する。ショートカットキーでは[Ctrl]+[;] (セミコロン)
ナウ
=NOW() :今日の日付と時刻を表示する。ショートカットキーでは[Ctrl]+「:」(コロン)
- これらの関数はファイルを開いた時に再計算され、そのときの日付・時刻が表示されます。つまり、開いた時の日時に変化します。
- 入力時の日付を固定したいケースでは[Ctrl]+[;] 時刻は[Ctrl]+[:] を使って日付や時刻を入力します。
【問題】
- 今日の日付をB2セルに、今の時刻をC2セルに表示しなさい。
- B3セルに明日の日付を表示しなさい。
- C3セルに1時間後の時刻を表示しなさい。
【解答例】
-
| |
B |
C |
| 2 |
=TODAY() |
=NOW() |
| 3 |
=TODAY()+1 |
=NOW()+"1:00" |
【補足説明】
- 上記が標準の表示状態です。パソコンの内蔵時計の値が使用されます。
パソコンの内蔵時計の設定が違っているとこの値も変化します。
- セルの表示形式を変更して希望の形式にします。
- 日付の表示形式についてはこちらへ
- 時刻の表示形式については日付と同様です。
| |
B |
C |
| 2 |
2003/11/14 |
2003/11/14 9:06 |
| 3 |
2003/11/15 |
2003/11/14 10:06 |
- =NOW() は入力されたときやブックを開いた時(再計算が行われた時)の時刻が表示されます。
- 今現在の時刻に表示を変えたい場合には「再計算」機能を使います。
| [F9] キー |
開いているすべてのブックの中で、最後に計算されたとき以降に変更された数式と、その数式を参照する数式を再計算します。 |
| [SHIFT ]+[F9] キー |
作業中のワークシートの中で、最後に計算されたとき以降に変更された数式と、その数式を参照する数式を再計算します。 |
| [Ctrl]+[Alt]+[F9]キー |
開いているすべてのブックの数式を再計算します。最後に計算されたとき以降に変更されたかどうかは問いません。 |
| [Ctrl]+[Shift]+[Alt]+[F9]キー |
参照先の数式を再度チェックし、開いているすべてのブックの数式を再計算します。最後に計算されたとき以降に変更されたかどうかは問いません。 |
- パソコンの時計はタスクバーの右端の時刻をダブルクリックすると[日付と時刻のプロパティ]の設定画面が出ます。
または、[コントロールパネル]の[日付と時刻]を選択しても同じ画面になります。
- タスクバーの時刻表示例です。ここをダブルクリックします。
- 【日付と時刻のプロパティ】ダイアログで【日付と時刻】タブを選択します。
- 日付の変更はカレンダーをクリックします。
- 時刻の変更は【▲】、【▼】ボタンで調整するか、時刻をクリックして入力訂正します。
- ついでに「タイムゾーン」が「(GMT+09:00) 大阪、札幌、東京」になっているのを確認しておきましょう。
(日本に在住の方のみです。自分の所在地に合わせます)
- 結構、トラブルにつながること(Windows Updateができないなど)がありますので、正確な状態で運用しましょう。
開始日と終了日との日数差を調べて、指定した単位で表示します topへ
デイトディフ
=DATEDIF(開始日,終了日,"単位")
開始日と終了日との日数差を調べて、指定した単位で表示します
”単位” Y:年数 M:月数 D:日数
YM:年数表示での端数の月数
YD: 端数の日数
MD:月数表示での端数の日数
(注)単位は「 ” 」(二重引用符)でくくります。
- (注)この関数はHELPに記載されていません(Excel2002)。LOTUSとの互換用に採用された関数です。
(注)”YD"や”MD"で日数を計算させると、間違った値になるバグがあるようです。注意してください。(Excel2003以前のバージョン)
この例ではC列の答えは「10」が正解です。
- [参考資料]
- Excel2007とExcel2003以前とでDATEDIF関数の結果が異なるようです
なんかややこしいことになっているようです。角田さんのサイトの「Excel2003以前と、Excel2007では DATEDIF 関数の算出結果が異なります」に解説などがありますのでそちらを参照してください。
|
【問題】次の人の年齢を求めましょう。基準日はF2セルです。
-
| |
B |
C |
D |
E |
F |
G |
| 2 |
氏名 |
生年月日 |
年齢 |
|
2003/5/10 |
現在 |
| 3 |
山田太郎 |
1970/10/11 |
32 |
才 |
6 |
ヶ月 |
| 4 |
鈴木一郎 |
1975/12/21 |
27 |
才 |
4 |
ヶ月 |
【解答例】
- DATEDIF関数を使います。端数の月数は"YM"です。
- 今日現在の場合は =DATEDIF(C3,TODAY(),"Y") となります。
| |
B |
C |
D |
E |
F |
G |
| 2 |
氏名 |
生年月日 |
年齢 |
|
2003/5/10 |
現在 |
| 3 |
山田太郎 |
1970/10/11 |
=DATEDIF(C3,$F$2,"Y") |
才 |
=DATEDIF(C3,$F$2,"YM") |
ヶ月 |
| 4 |
鈴木一郎 |
1975/12/21 |
=DATEDIF(C4,$F$2,"Y") |
才 |
=DATEDIF(C4,$F$2,"YM") |
ヶ月 |
【Step Up】
- 一つのセルに表示したい場合、演算子『&』を使い、文字列をつなぎます。
-
| |
B |
C |
D |
E |
F |
G |
| 2 |
氏名 |
生年月日 |
年齢 |
|
2003/5/10 |
現在 |
| 3 |
山田太郎 |
1970/10/11 |
=DATEDIF(C3,F2,"Y")&"才"&DATEDIF(C3,F2,"YM")&"ヶ月" |
| 4 |
鈴木一郎 |
1975/12/21 |
=DATEDIF(C4,F2,"Y")&"才"&DATEDIF(C4,F2,"YM")&"ヶ月" |
日付データ(シリアル値)から「年」「月」「日」を取り出す topへ
イヤー
=YEAR(日付) :『年』を返します。1900 〜 9999 (年) の範囲の整数となります。
マンス
=MONTH(日付) :『月』を返します。1 〜 12 (月) の範囲の整数となります。
デイ
=DAY(日付) :『日』を返します。1 〜 31 の範囲の整数となります。
【問題1】
- C3:C4セルに入力された日付データから『年』『月』『日』の数をD3:F4セルに取り出しなさい。
- なお、C3:C4セルにはシリアル値で入力されています。
-
| |
B |
C |
D |
E |
F |
| 2 |
氏名 |
生年月日 |
年 |
月 |
日 |
| 3 |
山田太郎 |
1970/10/11 |
1970 |
10 |
11 |
| 4 |
鈴木一郎 |
1975/12/21 |
1975 |
12 |
21 |
【解答1例】
-
| |
B |
C |
D |
E |
F |
| 2 |
氏名 |
生年月日 |
年 |
月 |
日 |
| 3 |
山田太郎 |
1970/10/11 |
=YEAR(C3) |
=MONTH(C3) |
=DAY(C3) |
| 4 |
鈴木一郎 |
1975/12/21 |
=YEAR(C4) |
=MONTH(C4) |
=DAY(C4) |
文字列の日付から年月日を取出す
- C3:C4セルの日付が文字列であったら、YEAR、MONTH、DAY関数は使えず、#VALUE! エラーになります。
そんな時には、文字列の操作関数を使います。
-
| |
B |
C |
D |
E |
F |
| 2 |
氏名 |
生年月日 |
年 |
月 |
日 |
| 3 |
山田太郎 |
1970ねん10がつ11 |
=LEFT(C3,4) |
=MID(C3,7,2) |
=RIGHT(C3,2) |
| 4 |
鈴木一郎 |
1975ねん12がつ21 |
=LEFT(C4,4) |
=MID(C4,7,2) |
=RIGHT(C4,2) |
(注)上の表はExcelへエクスポートした時C3:C4セルを文字列とするため、ひらがなを使用しています。
空白セルを参照する時の注意
- 空白のセルを参照すると、YEARは「1900」、MONTHは「1」、DAYは「0」を返します。
- =IF(B2="","",YEAR(B2)) とか =IF(B2<>"",YEAR(B2),"") のように回避します。
-
| |
B |
C |
D |
| 2 |
|
=YEAR(B2) |
1900 |
| 3 |
|
=MONTH(B3) |
1 |
| 4 |
|
=DAY(B4) |
0 |
元号の数値(和暦)を求めたい時
- Excelでは西暦で日付は管理されています。西暦から元号の数値を求めるには表示形式を利用する方法があります。
- ただし、元号がないので明治/大正/昭和/平成にまたがるデータを扱う場合は、区別が付かなくなるので注意が必要です。
【問題1】
- C3:E4セルにそれぞれ年月日の数値が入力されています。
- これらの数値を使って、F3:F4セルに日付を表示しなさい。
-
| |
B |
C |
D |
E |
F |
| 2 |
氏名 |
年 |
月 |
日 |
年月日 |
| 3 |
山田太郎 |
1970 |
10 |
11 |
1970/10/11 |
| 4 |
鈴木一郎 |
1975 |
12 |
22 |
1975/12/22 |
【解答1例】
-
| |
B |
C |
D |
E |
F |
| 2 |
氏名 |
年 |
月 |
日 |
年月日 |
| 3 |
山田太郎 |
1970 |
10 |
11 |
=DATE(C3,D3,E3) |
| 4 |
鈴木一郎 |
1975 |
12 |
22 |
=DATE(C4,D4,E4) |
【問題2】
- C3:C4セルにそれぞれ年月日の数値が入力されています。
- D3:D4に5年後の日付を表示しなさい。
-
| |
B |
C |
D |
| 2 |
氏名 |
年月日 |
5年後 |
| 3 |
山田太郎 |
2006/2/10 |
2011/2/10 |
| 4 |
鈴木一郎 |
2000/2/29 |
2005/3/1 |
【解答2例】
- 年月日から年,月,日を取り出し、DATE関数で年に5を加えています。
ただし、閏年の2/29は該当する日がないので翌日の3/1になります。
- 月末や何ヶ月後は後述するEOMONTH関数やEDATE関数も使えます。
-
| |
B |
C |
D |
| 2 |
氏名 |
年月日 |
5年後 |
| 3 |
山田太郎 |
2006/2/10 |
=DATE(YEAR(C3)+5,MONTH(C3),DAY(C3)) |
| 4 |
鈴木一郎 |
2000/2/29 |
=DATE(YEAR(C4)+5,MONTH(C4),DAY(C4)) |
- 通常はExcelが日付データと認識したら、内部でシリアル値に変換しますのであまり使うことはないかもしれません。
- 他のソフトからデータをインポートした時に文字列となっていた場合などに使用します。
【問題】
- B2:C3セルに日付が文字列で入力されています。10日後の日付をD,E列に表示しなさい。
- C列は文字列として入力されているものとします。
- C2セルには「'10月10日」、C3セルには「'11月11日」のように頭にアポストロフィ([Shift]+[7]キー)を入力します。
なお、入力後にはシート上ではアポストロフィは表示されません。数式バーではアポストロフィが入力されているのが確認できます。
| |
B |
C |
D |
E |
| 2 |
2004年 |
10月10日 |
2004/10/20 |
平成16年10月20日 |
| 3 |
平成15年 |
11月11日 |
2003/11/21 |
平成15年11月21日 |
【解答例】
- 年と月日をつなげて日付の文字列を作ります。DATEVALUE関数でシリアル値に変更して計算します。
- D列は【書式】→【セル】の表示形式で「日付」の「*2001/3/14」を選択します。
- E列は【書式】→【セル】の表示形式で「日付」の「平成13年3月14日」を選択します。
-
| |
B |
C |
D |
E |
| 2 |
2004年 |
10月10日 |
=DATEVALUE(B2&C2)+10 |
=DATEVALUE(B2&C2)+10 |
| 3 |
平成15年 |
10月11日 |
=DATEVALUE(B3&C3)+10 |
=DATEVALUE(B3&C3)+10 |
- Excelは日付データと認識できるものは内部で日付として(シリアル値に変換して)計算しますので、D2セルは =(B2&C2)+10 とすることで計算できます。
よって、数式でDATEVALUE関数を使うことは少ないと思われます。
同じセルで文字列の日付をシリアル値に変更する
- 【データ】→【区切り位置】でウィザードの3/3の「列のデータ形式」を「日付」にして、「OK」とすることで可能です。
日付の表示を和暦に変換する topへ
デイト ストリング
=DATESTRING(日付のシリアル値)
(注)他の表計算アプリケーションとの互換を保つために用意された関数のため、ヘルプおよび関数ウィザードには表示されません。
日本語版 Excel でのみ追加されたものです。
- A1セルに「2005/4/1」と入力されているとします。
- =DATESTRING(A1) とすると、「平成17年04月01日」となります。
また 「2005/4/1」のシリアル値「38443」を使って =DATESTRING(38443) としても同じ結果が得られます。
- =TEXT(A1,"ggge年mm月dd日") と同じ結果が得られます。
終了日と開始日の差を求めます。 topへ
デイズ
=DAYS(終了日,開始日)
(注)Excel2013で追加された関数です。
- 終了日と開始日の差を求めます。これらはいずれもシリアル値もしくは日付と認識される文字列である必要があります。
- 日付と認識できない文字列の場合はエラー値「#VALUE!」が返されます。
- なお、DAYS関数を使わず、=B2-C2 といった減算でも計算できます。
シリアル値を曜日に対応する数値に変更する topへ
ウイークデイ
=WEEKDAY(シリアル値,種類)
【種類】に『1』を指定するか省略した場合 :日曜日が1で始まり、土曜日が7となります。
【種類】に『2』を指定した場合 :月曜日が1で始まり、日曜日が7となります。
【種類】に『3』を指定した場合 :月曜日が0で始まり、日曜日が6となります。
【問題】B列の日付が土日の場合、C列に『休み』と表示し、月〜金の場合は『仕事』と表示しなさい。
-
| |
B |
C |
| 2 |
年月日 |
|
| 3 |
2004/2/9 |
仕事 |
| 4 |
2004/2/8 |
休み |
【解答例】
- WEEKDAY関数の『種類』に【2】を使うと、土が「6」、日が「7」となるので、IF関数を使い、「WEEKDAY関数の値が6以上であれば『休み』とし、そうでなかったら(6未満であったら)仕事』としなさい。」といった数式を組みます。
-
|
B |
C |
| 2 |
年月日 |
|
| 3 |
2004/2/9 |
=IF(WEEKDAY(B3,2)>=6,"休み","仕事") |
| 4 |
2004/2/8 |
=IF(WEEKDAY(B4,2)>=6,"休み","仕事") |
【参考】下は2004年の日付です。
【おまけ】どうしてもWEEKDAY関数を使って、曜日を表示したい時は、関数との組み合わせで可能です。
- A1に日付が入力してあるとして、
- =TEXT(A1,"aaa") とする。
- =A1 として セルの表示形式を「"aaa"」とする。
- WEEKDAY関数を使い場合は
- =CHOOSE(WEEKDAY(A1),"日","月","火","水","木","金","土")
- =MID("日月火水木金土",WEEKDAY(A1),1)
- =VLOOKUP(WEEKDAY(A1),{1,"日";2,"月";3,"火";4,"水";5,"木";6,"金";7,"土"},2)
などです。
【注意】1900年3月1日より前の日をWEEKDAY関数で処理する場合には注意が必要です。
- 1900/2/29は存在しませんが、日付システムには存在しています。
よって、1900年1月1日〜1900年2月28日のWEEKDAY関数で返る値は間違った値になります。
詳しくは↓を参照してください。
- (確認してみました)
1900/2/27を入力し、下方向へコピー(フィルハンドルをドラッグ)すると、存在しないはずの1900/2/29が出てきます。
| 1900/2/27 |
月 |
| 1900/2/28 |
火 |
| 1900/2/29 |
水 |
| 1900/3/1 |
木 |
| 1900/3/2 |
金 |
指定された稼動日数だけ前/後の日付(シリアル値)を求めます topへ
ワークデイ
=WORKDAY(開始日,日数,祭日)
指定した稼働日数の前/後の日付に対応する値を返します。稼動日とは、土曜、日曜、および指定された祭日を除く。
(注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
【問題1】
- 2004年2月4日に請求書を発行します。 支払日は請求書発行日から5営業日とします。
- 支払日を求めなさい。ただし祝日は考慮しないものとします。
-
| |
B |
C |
| 2 |
請求日 |
2004年2月4日 |
| 3 |
支払日 |
2004年2月11日 |
- (参考)2004年2月4日〜13日の曜日は以下のようになっています。
| 2004年2月4日 |
水曜日 |
| 2004年2月5日 |
木曜日 |
| 2004年2月6日 |
金曜日 |
| 2004年2月7日 |
土曜日 |
| 2004年2月8日 |
日曜日 |
| 2004年2月9日 |
月曜日 |
| 2004年2月10日 |
火曜日 |
| 2004年2月11日 |
水曜日 |
| 2004年2月12日 |
木曜日 |
| 2004年2月13日 |
金曜日 |
【解答例】
- WORKDAY関数を使った例です。(祭日は考慮していません)
- Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
- C3セルにシリアル値が表示されたら、表示形式を「日付」の「2001年3月14日」に変更します。
| |
B |
C |
| 2 |
請求日 |
2004年2月4日 |
| 3 |
支払日 |
=WORKDAY(C2,5) |
【問題2】
- 2004年2月4日に請求書を発行します。 支払日は請求書発行日から5営業日とします。
- ただし、祭日は営業日として数えません。支払日を求めなさい。
-
| |
B |
C |
D |
E |
F |
| 2 |
請求日 |
2004/2/4 |
|
祝日一覧 |
|
| 3 |
支払日 |
2004/2/12 |
|
2004/1/1 |
元旦 |
| 4 |
|
|
|
2004/1/15 |
成人の日 |
| 5 |
|
|
|
2004/2/11 |
建国記念日 |
【解答例】
- 祝日を考慮する場合は、祝日の表を作成します。祝日の項に祝日の範囲を指定します。
- Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
- C3セルにシリアル値が表示されたら、表示形式を「日付」の「2001年3月14日」に変更します。
| |
B |
C |
D |
E |
F |
| 2 |
請求日 |
2004/2/4 |
|
祝日一覧 |
|
| 3 |
支払日 |
=WORKDAY(C2,5,E3:E5) |
|
2004/1/1 |
元旦 |
| 4 |
|
|
|
2004/1/15 |
成人の日 |
| 5 |
|
|
|
2004/2/11 |
建国記念日 |
指定された期間の稼動日数を求めます topへ
ネットワークデイズ
=NETWORKDAYS(開始日,終了日,祭日)
指定した期間(開始日〜終了日)の稼働日数を返します。稼動日とは、土曜、日曜、および指定された祭日を除く。
(注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
【問題1】
- 2004年2月4日に工事を開始します。完了日は2004年2月15日です。
- 土日は休みとします(祝日は工事をします)。実質は何日の工事日数となるでしょうか?
-
| |
B |
C |
| 2 |
工事開始日 |
2004/2/4 |
| 3 |
工事完了日 |
2004/2/15 |
| 4 |
工事日数 |
8 |
【解答例】
- NETWORKDAYS関数を使った例です。(祭日は考慮しません)
- Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
| |
B |
C |
| 2 |
工事開始日 |
2004/2/4 |
| 3 |
工事完了日 |
2004/2/15 |
| 4 |
工事日数 |
=NETWORKDAYS(C2,C3) |
【問題2】
- 2004年2月4日に工事を開始します。完了日は2004年2月15日です。
- 土日と祝日は休みとします。実質は何日の工事日数となるでしょうか?
-
| |
B |
C |
D |
E |
F |
| 2 |
工事開始日 |
2004/2/4 |
|
祝日一覧 |
|
| 3 |
工事完了日 |
2004/2/15 |
|
2004/1/1 |
元旦 |
| 4 |
工事日数 |
7 |
|
2004/1/15 |
成人の日 |
| 5 |
|
|
|
2004/2/11 |
建国記念日 |
【解答例】
- 祝日を考慮する場合は、祝日の表を作成します。祝日の項に祝日の範囲を指定します。
- Excelへのインポートでうまくいかない場合は、Excelを新たに開いてからコピー&ペーストしてください。
| |
B |
C |
D |
E |
F |
| 2 |
工事開始日 |
2004/2/4 |
|
祝日一覧 |
|
| 3 |
工事完了日 |
2004/2/15 |
|
2004/1/1 |
元旦 |
| 4 |
工事日数 |
=NETWORKDAYS(C2,C3,E3:E5) |
|
2004/1/15 |
成人の日 |
| 5 |
|
|
|
2004/2/11 |
建国記念日 |
日付がその年の第何週目に当たるかを返します topへ
ウイークナム
=WEEKNUM(シリアル値,週の基準)
週の基準 1:週の始まりを日曜日とします。
2:週の始まりを月曜日とします。
(注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
Excel2010以降では週の基準が増えています こちら をご覧ください。
- 【問題2】2004年7月4日(日曜日)はこの月の第何週にあたるか計算しなさい。なお、週の初めは日曜日からとします。
| |
B |
C |
| 2 |
日付 |
週 |
| 3 |
2004/7/4 |
第2週 |
- 【解答例2】
- 求める日付の週はWEEKNUM(B2)で求めることができます。
その月の1日はDATE(YEAR(B2),MONTH(B2),1 となるので、その週はWEEKNUM(DATE(YEAR(B2),MONTH(B2),1)で求めます。
この差に1を加えることで求めることができます。
- 求めた数値の前後に文字を付け加えて完成となります。
="第"&WEEKNUM(B2)-WEEKNUM(DATE(YEAR(B2),MONTH(B2),1))+1&"週"
| |
B |
C |
| 2 |
日付 |
週 |
| 3 |
2004/7/4 |
="第"&WEEKNUM(B2)-WEEKNUM(DATE(YEAR(B2),MONTH(B2),1))+1&"週" |
- WEEKNUM関数はExcel2007以前でもありましたが、Excel2010では種類に指定できる数が増えています。
- =WEEKNUM(シリアル値,[週の基準])]) の「週の基準」に従来は1か2を指定可能でしたが、11〜21の指定が可能になっています。
-
| 種類 |
週の始まり |
システム |
| 1 または省略 |
日曜日 |
1 |
| 2 |
月曜日 |
1 |
| 11 |
月曜日 |
1 |
| 12 |
火曜日 |
1 |
| 13 |
水曜日 |
1 |
| 14 |
木曜日 |
1 |
| 15 |
金曜日 |
1 |
| 16 |
土曜日 |
1 |
| 17 |
日曜日 |
1 |
| 21 |
月曜日 |
2 |
- なお、Excel2010では関数を入力するとポップアップヒントで引数まで教えてくれますので、「週の基準」を覚える必要はないかもしれません。
- 日曜日と月曜日が複数ありますが、月曜日の3つについて比較しました。
どこでカウントが変化しているのかが、この基準の違いになります。
- 週の基準2,11(システム1)は1月1日が1となり、月曜日にカウントアップします。
週の基準21(システム2)は一年の最初の木曜日を含む週を週1のように番号付けされるようです。
このシステムは一般的にヨーロッパの週番号システムとして知られているそうで、ISO 8601で指定されているようです。
日付のその年におけるISO週番号を返します topへ
アイエスオ− ウイークナム
=ISOWEEKNUM(日付)
(注) Excel2013で追加された関数です。
- Excel2010で追加された週基準の「21」に相当するものです。
- ISO 8601で「最初の木曜日を含む週が、その年の第1週である。」と規定されたものです。
よって、1月1日が金〜日曜日である時は前年の週として扱うことになります。
また、JIS X 0301も同様の規定のようです。
月末の日付を求めます topへ
エンドオブマンス
=EOMONTH(開始月,月数)
開始月から指定した月数分だけ前後した月末の日付を求めます。
求めた日付はシリアル値ですので、表示形式を日付に変更します。
(注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
【問題】2003年2月10日に請求書を発行します。支払期限のセルに翌月末を表示しなさい。
-
| |
B |
C |
| 2 |
請求日 |
2003/2/10 |
| 3 |
支払期限 |
2003/3/31 |
【解答例】C3セルがシリアル値で表示されたら、【書式】→【セル】で表示形式を日付に変更します。
-
| |
B |
C |
| 2 |
請求日 |
2003/2/10 |
| 3 |
支払期限 |
=EOMONTH(C2,1) |
(注) Excelへのエクスポートでエラーが出る場合はExcelを一旦終了後、再起動してから、C2セルに「2003/2/10」 C3セルに「=EOMONTH(C2,1)」を入力してください。
【他の解答例】
- 以下のように、”2ヵ月後の1日の前日”でも計算できます。
- =DATE(YEAR(C2),MONTH(C2)+2,1)-1
- =DATE(YEAR(C2),MONTH(C2)+2,0)
土日、祝日を除いた月末を求めるには
- =WORKDAY(EOMONTH(A1,0)+1,-1,祝日) 祝日の表をD3:D4に作成しているので
- =WORKDAY(EOMONTH(A1,0)+1,-1,D2:D3)
- のように、翌月の1日を基準に前の稼働日を求めればよい。
-
|
B |
C |
D |
| 2 |
2005/4/1 |
=WORKDAY(EOMONTH(B2,0)+1,-1,D3:D4) |
祝日 |
| 3 |
|
=WORKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),-1,D3:D4) |
2005/4/29 |
| 4 |
|
|
2005/5/3 |
指定した月数分だけ前後した日付 topへ
イーデイト
=EDATE(開始日,月数)
開始日から起算して、指定された月数だけ前または後の日付に対応するシリアル値を返します。
(注) Excel2003以前のバージョンでは、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。
【問題】2003年2月10日に請求書を発行します。支払期限の3ヶ月後の日付を表示しなさい。
-
| |
B |
C |
| 2 |
請求日 |
2003/2/10 |
| 3 |
支払期限 |
2003/5/10 |
【解答例】
-
| |
B |
C |
| 2 |
請求日 |
2003/2/10 |
| 3 |
支払期限 |
=EDATE(C2,3) |
- C3セルがシリアル値で表示されたら、【書式】→【セル】で表示形式を日付に変更します。
【Memo】月末からの計算は下表のように、該当日が無い場合は月末の日付となります。
スポンサードリンク
よねさんのWordとExcelの小部屋|Excel(エクセル)基本講座の総目次|Excel(エクセル)関数一覧表|日付の関数
PageViewCounter

Since2006/2/27