• 締切済み

Excelで最終的に年齢を出したいのですが、関数などわかりません(T^T)

A1のセルに"2210101" と入力されています。 この数字は生年月日を表していて、初めの2は昭和という意味です。(他のセルに先頭が3という数字もあり、3は平成を表しています) つまりA1は昭和21年1月1日という意味です。 この生年月日の人の年齢を知りたいんです。どうしたらいいかわかりません。因みにデータは500程あります。 どなたかご親切な方、元のデータからの年齢の出し方を詳しく教えてください(T^T)お願いします!

みんなの回答

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.3

ひとつの式に詰め込んでみました。 =DATEDIF(DATE(LOOKUP(LEFT(A1,1),{"1","2","3"},{"1911","1925","1988"})+MID(A1,2,2),MID(A1,4,2),MID(A1,6,2)),TODAY(),"Y")

回答No.2

年齢などの満年、満月、満日などを求めるには、datedif()を使うといいでしょう。 ただ、この関数は、Excelではおまけ扱い(Lotusとのしがらみ?)らしく、ヘルプを見ても出てきません。 元号・年・月・日の切り出しは、#1の回答で良いとして、今後は、時間の管理は、Excelの(時間管理の)シリアル値で行うことをお勧めします。 http://www.relief.jp/itnote/archives/000423.php http://kokoro.kir.jp/excel/datedif.html

  • potok
  • ベストアンサー率37% (20/53)
回答No.1

以下をコピペしてください。 (※A列の書式は数値ではなく文字列になっているものとします) B1 =IF(LEFT(A1,1)="2",1925+VALUE(MID(A1,2,2)),IF(LEFT(A1,1)="3",1988+VALUE(MID(A1,2,2)),"taisyou or meiji")) C1 =YEAR(TODAY())-B1 D1 =TODAY()-DATE(YEAR(TODAY()),MID(A1,4,2),MID(A1,6,2)) E1 =IF(D1<0,-1,0) F1 =C1+E1 F列が答えになります。 上記はエラーを発見しやすくするためと、今後答える側になっていただくために分けましたが、 G1に以下の式をコピペすると一発で可能です。 もし、昭和・平成以外があれば、自分で修正してみてください。 =YEAR(TODAY())-IF(LEFT(A1,1)="2",1925+VALUE(MID(A1,2,2)),IF(LEFT(A1,1)="3",1988+VALUE(MID(A1,2,2)),1000))+if(TODAY()-DATE(YEAR(TODAY()),MID(A1,4,2),MID(A1,6,2))<0,-1,0)

sk2009
質問者

お礼

ご回答ありがとうございました。早速明日、仕事で使ってみます!もし出来なければ、また質問させてください(T_T)

関連するQ&A