« ふわぁってできんかね。 | トップページ | 金持ちぃ~ハレルヤ~ »

一か月の日付を関数で自動的に入力する。

この記事は自分用の覚書です。

一か月の日付を自動的に入力するには、次の4つの関数が使える。
( Windows 8 Pro 64ビット + Excel2010 )

・DATE関数
特定の日付を表す連続したシリアル値を返す。
書式
DATE(年,月,日)

・EOMONTH関数
開始日から起算して、指定された月数だけ前または後の月の最終日に対応するシリアル値を返す。
書式
EOMONTH(開始日, 月)

・IF関数
指定された条件を評価した結果が TRUE の場合はある値を返し、評価した結果が FALSE の場合は別の値を返す。
書式
IF(論理式, [真の場合], [偽の場合])

・OR関数
いずれかの引数が TRUE のとき、TRUE を返す。引数がすべて FALSE である場合は、FALSE を返す。
書式
OR(論理式 1, [論理式 2], ...)


■一か月の日付を関数で自動的に入力する。
4種類ある月末の日付(28,29,30,31)に対応した表示ができるようにする。
(月末が28日の場合は28まで、29なら29までを表示。30日の場合は30まで、31日までの月は31までを表示)

例:2013年10月の日付を、A1からAE1の31個のセルに入れる。

  1. A1セルに
    =DATE(2013,10,1)
    の式を入れる。
  2. B1セルに
    =A1+1
    の式を入れる。
  3. B1を選択して、右下隅の黒■にカーソルを合わせる。
  4. カーソルが黒十字に変わったら、左クリックしてAB1セルまでドラッグする。
    10月28日までの日付がセルに入る。
  5. AC1セルに
    =IF(AB1=EOMONTH($A$1,0),"",AB1+1)
    の式を入れる。
  6. AD1セルに
    =IF(OR(AC1="",AC1=EOMONTH($A$1,0)),"",AC1+1)
    の式を入れる。
  7. AD1を選んで、手順3~4のようにしてAE1セルに式をコピーする。
    AE1に、
    =IF(OR(AD1="",AD1=EOMONTH($A$1,0)),"",AD1+1)
    の式が入れば完了。

A1セルの式のなかで、 DATE(2014,1,1) のように、年,月,日を変えると、それに応じた一か月の日付が各セルに表示される。
月末の日付に合わせて、AC1セルからAE1セル(29,30,31)の表示・非表示が変わる。

A1では、関数を使わないで 2013/10/1 と入力しても結果は同じ。

別のセルで曜日を表示するには、曜日を表示するセルで日付のセルを =A1 のように指定して、「セルの書式設定」の「ユーザー定義」で aaa あるいは aaaa を入力する。
aaa では 火 のように 曜日 が付かない表示。
aaaa では 火曜日 のように 曜日 という字を伴った表示。

=TEXT(A1,"aaa") の式で曜日を表示することもできる。
この場合は、TEXT関数によって文字列が返されるので、手順2のように、隣のセルに1を足していく式で曜日を増やしていくことはできない。


DATE関数の引数をセル位置にすることで、別のセルで「年」と「月」を指定する使い方もできる。

■DATE関数の引数の「年」と「月」を、ほかのセルで指定する。
DATE関数の引数をほかのセルから取得するには、該当する引数の部分にセル位置を書く。

=DATE(A1,B1,1)

のように書く。
A1セルには「年」(2013)を、B1セルには「月」(10)を入力する。月の初めは必ず1日から始まるので引数の「1」は式の中に書いておく。
A1とB1を書き換えるたびに、一か月の日付の表示も連動して変わる。

例: の式のままでは、A1とB1に値を入れないと #NUM! のエラー表示になる。

・A2
=IF(OR(ISBLANK(A1),ISBLANK(B1)),"",DATE(A1,B1,1))

・B2
=IF(A2="","",A2+1)

AC2
=IF(ISERROR(AB2=EOMONTH($A$2,0)),"",IF(AB2=EOMONTH($A$2,0),""
,AB2+1))

・AD2
=IF(ISERROR(AC2=EOMONTH($A$2,0)),"",IF(AC2=EOMONTH($A$2,0),""
,IF(AC2="","",AC2+1)))

・AE2
=IF(ISERROR(AD2=EOMONTH($A$2,0)),"",IF(AD2=EOMONTH($A$2,0),""
,IF(AD2="","",AD2+1)))

など、エラーを非表示にする工夫も必要。

|

« ふわぁってできんかね。 | トップページ | 金持ちぃ~ハレルヤ~ »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 一か月の日付を関数で自動的に入力する。:

« ふわぁってできんかね。 | トップページ | 金持ちぃ~ハレルヤ~ »