目次
概要
=DATEDIF(【生年月日が入ったセル】,TODAY(),"Y")&"歳"&DATEDIF(【生年月日が入ったセル】,TODAY(),"YM")&"ヶ月"&DATEDIF(【生年月日が入ったセル】,TODAY(),"MD")&"日"
エクセルの関数において、上記は生年月日から今日時点の年齢を出す式です。
=TEXT(【日付のセル】,"aaa")
そして上記は日付から曜日を計算する式です。
以下、年齢計算や曜日の自動計算といった日付に関わる計算・関数を挙げていきます。
日付や年齢計算に関する式
今日の日付を表示する
=TODAY()
今日の日付を表示する場合はTODAY関数を用います。
ファイルを開いた時点の今日の日付を表示します。
西暦か和暦かなど表示形式は書式設定から設定するといいでしょう。
その日から1か月後や2か月後を求める
=EDATE(【基準の日】, 【何か月後か】)
指定した日から何か月後かの日付を求めたい場合はEDATE関数を使用します。
例えば「=EDATE(A1, 2)」であれば、セルA1に入力された日付の2か月後の日付を返します。
日付から曜日を求める
=TEXT(【日付のセル】,"aaa")
その日付が何曜日かを求めます。
例えば「=TEXT(A1,”aaa”)」なら、セルA1の日付の曜日を返します。
「”aaa”」なら「月」「火」など一文字で表します。
「”aaaa”」なら「月曜日」「火曜日」など曜日も付けて表示します。
余談ですが、求めた曜日に条件付き書式を施し、土曜なら青、日曜なら赤にしておけば、自動カレンダーを作ることもできるでしょう。
生年月日から今日時点の年齢を算出する
=DATEDIF(A1,TODAY(),"Y")&"歳"&DATEDIF(A1,TODAY(),"YM")&"ヶ月"&DATEDIF(A1,TODAY(),"MD")&"日"
A1に入力された生年月日から、今日時点の年齢を「〇歳〇ヶ月〇日」という形式で出力します。
生年月日は西暦であれば「2000/1/1」のように半角スラッシュで表記します。
和暦であれば「R1.1.1」のように半角アルファベットと半角ピリオドで表記します。
生年月日からその人が小学何年生か算出する
=LOOKUP(IF(【生年月日】-DATEVALUE(YEAR(【生年月日】)&"/"&"4/2")<0,IF(MONTH(【いつの時点か絶対参照】)<4,YEAR(【いつの時点か絶対参照】)-YEAR(【生年月日】),YEAR(【いつの時点か絶対参照】)-YEAR(【生年月日】)+1),IF(MONTH(【いつの時点か絶対参照】)<4,YEAR(【いつの時点か絶対参照】)-YEAR(【生年月日】)-1,YEAR(【いつの時点か絶対参照】)-YEAR(【生年月日】))),【数字の範囲】,【数字に対応した区分名の範囲】)
生年月日から、指定した日にその人は何年生かを算出します。
仕組みしてはLOOKUP関数を用いて別表に作成した区分名を参照しています。
このため区分を記した表を別シートなどに作成します。
具体的には、別のシートのA列に年齢の数値を、B列にその年齢に対応する区分を記載します。
例えば0~18の数値に未満児・未満児・未満児・未満児・年少・年中・年長・小1・小2・小3・小4・小5・小6・中1・中2・中3・高1・高2・高3を対応させた表にします。
そして上記の関数の【生年月日】【いつの時点か絶対参照】【数字の範囲】【数字に対応した区分名の範囲】に任意のセルを入力します。
日付から年や月や日を抜き出す
=YEAR(【日付のあるセル】)
=MONTH(【日付のあるセル】)
=DAY(【日付のあるセル】)
それぞれ、日付の入ったセルから年や月や日だけを抜き出します。
別々のセルに入力された年・月・日を結合する
=DATE(A1,B1,C1)
別々のセルに入力された年・月・日をまとめ、一つの日付にします。
上記の例ではA1に年、B1に月、C1に日が入っている状態を仮定してます。
任意の日付が第何週か求める
=TEXT(INT((DAY(A1)+6)/7),"第0")
指定の日付が第何週目かを求めます。
上記の例ではA1セルに日付が入っていることを想定しています。
例えば2022年12月28日は第4水曜日ですし、2022年12月29日は第5木曜日です。
このように、その日の曜日がその月の何回目の曜日かを求めます。
=TEXT(INT((DAY(DATE(A1,B1,C1))+6)/7),"第0")
また、年・月・日が分割されて別々のセルに入力されてるフォーマットの場合は、DATE関数で1つにまとめ上げることで対応できるでしょう。
オートフィルタに対応した連番を振る
=SUBTOTAL(3,B$2:B2)
上記式をA2のセルに記述します。
「B$2:B2」には、連番の1番目にしたいセルの隣のセルを指定します。
一方の行を絶対参照、他方を相対参照にすることでオートフィルでのコピーを可能にします。
これにより、A1を左隅としB1以降にもデータがある表の連番を振ることができます。
A列を番号列とし、上記式を入力したA2のセルをオートフィルにて下までコピーして使用します。
内容としてはSUBTOTAL関数の集計方法3にて、B列のデータ個数を数えています。
これによりフィルターで抽出されたデータに連番を振ることができます。
フリガナをふる
=PHONETIC(【指定のセル】)
指定のセルのフリガナを返します。
絶対値を求める
=ABS(【数値】)
絶対値を求めます。
つまり「2」なら「2」、「-3」なら「3」を返します。