こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで、特定の日付での年齢の算出について

ある特定の日の年齢を算出したいと思っています。
しかし、生年月日、特定の日が一つずつのセルに分かれて入力されていてどうしたらよいのか困っています。
状況としては、
3は昭和を表現し、その後に一つずつのセルに60年01月01日
 ↓           という生年月日を一文字ずつ入力してある
  A  B  C  D  E  F  G  H  I  J  K  L  M
 3  6  0  0  1  0  1  2  1  0  5  0  2
↑ここから平成21年05月02日と言う内容               が入力してあります。

Aからの生年月日で、Hのセル以降に入力してある日付での年齢を
算出したいのです。
しかも、この数が大量に存在し出来れば関数などで処理できれば幸いなのですが、良い方法はないでしょうか。教えてください。

投稿日時 - 2009-06-03 00:10:08

QNo.5012318

困ってます

質問者が選んだベストアンサー

順番に対応すればむづかしい内容ではありません。

例は1行目として
N1:B1*10+C1:和暦年
昭和を西暦に変換します
O1=N1+1925
P1:D1*10+E1:月
Q1:F1*10+G1:日
R1=Year(O1,P1,Q1)
でR1に生年月日を日付形式で得られます。

同様に特定日を日付形式にして、その差を求めれば年齢が得られます。

A列に元号があるのでIf関数を上手に使えば同じ式で平成にも対応できます。

この内容が理解できていれば作業セルを介さず、なが~~い式を組むことも可能です。(わたしはバラでするほうが楽なのでお勧めはしません)

投稿日時 - 2009-06-03 01:07:06

お礼

回答ありがとうございました。
色々と親切に感謝いたします。
セルの情報をひとつにしたかったので、ネットで調べたりすると、CONCATENATEが出てきて、文字列になってしまって・・・
参考になりました。助かりました。

投稿日時 - 2009-06-04 13:58:23

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

#2です
今頃ちょんぼを発見

>R1=Year(O1,P1,Q1)
→R1=Date(O1,P1,Q1)

※Year関数に引数を3個もつけてどうするんだ<俺

投稿日時 - 2009-06-03 18:43:05

お礼

すいません。わざわざ訂正していただいて。
ありがとうございます。

投稿日時 - 2009-06-04 13:59:02

ANo.3

(1)エクセルにはDATEDIFという関数が有る。質問では知らないのかな。有名な有用な関数です。
Googleででも照会すればたくさん実例説明が有る。
(2)エクセルの日付に関する関数の引数は、年月日に関する部分は、日付シリアル値(判らなければGoogleで「日付シリアル値」で照会のこと。たくさん解説が有る)の値で指定しないとならない。そうでないと日付関数や日数計算に使えない。このことを認識してるでしょうか。
(3)質問のような入力は、このままでは日付シリアル値ではない。セルに分かれていて、最悪。
(4)だから課題は質問の状態から、どのようにして、日付シリアル値を造か
(5)日付文字列(ただし/付き)から、日付シリアル値を造るのにはDATEVALUEという関数が有る
例データ A1:G1
3600101
=DATEVALUE(CHOOSE(A1,"M","T","S")&B1&C1&"/"&D1&E1&"/"&F1&G1)
書式は日付にしておく。
ーー
現在日付(何々までの方)の方は全て平成と仮定して
H21/05/02のような文字列を作り、DATEVALUEを使えばよい・
ーー
要点は
DATEIF関数を知る
日付シリアル値化の関数を知る
エクセルの日付シリアル値の理解の大切さ。

投稿日時 - 2009-06-03 15:13:52

お礼

回答ありがとうございました。

投稿日時 - 2009-06-04 13:55:38

=DATEDIF(MID("MTSH",A1,1)&B1&C1&"."&D1&E1&"."&F1&G1,"H"&H1&I1&"."&J1&K1&"."&L1&M1,"y")

投稿日時 - 2009-06-03 00:59:48

お礼

回答ありがとうございました。

投稿日時 - 2009-06-04 13:41:41

あなたにオススメの質問