• ベストアンサー

エクセルで年齢を出したい。

エクセルA1列に生年月日があり、B1例にその年の年齢をだしたいです。 ただし、A1には、 1970年1月1日とか、 1970/1/1とか、 1970/01/01とか 1970年1月1日 とかが混ざっている状態です。 このような状態で、現時点の年齢を出したいのですが、 その方法がございましたら、伝授ください。 宜しくお願いします。

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

  • ベストアンサー
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.7

>1970年 01月1日のように、年と月との間にスペースのある手書きが書かれた文字が スペースを削除する必要があります。 A列の生年月日が入力されているセルを選択 → 編集 → 置換 → 検索する文字列にスペース → 置換後の文字列は入力しない → すべて置換 以上でスペースが削除されます。 削除後文字列があれば回答番号:No.5さんの方法でシリアル値に変更します。 その後に皆さんの回答の  =IF(A1="","",DATEDIF(A1,TODAY(),"Y")) で年齢計算

coco-chanel
質問者

お礼

長らく作業に没頭しており、お礼がおそくなりまして申し訳ございませんでした。 無事、いただいたアドバイスを元に作業が完成することが出来、 大変助かりました。 gyouda1114さま、その他のみなさまの回答に感謝しております。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.10

No.5です。 >どこか適当なセルに「1」をいれた上に、「1970年1月1日」をコピーして、「形式を選択して貼り付けであっていますか? 違います。1をコピーして、「1970年1月1日」に「形式を選択して貼り付け」です。そこで、貼り付け:値、演算:乗算で、貼り付けてみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.9

あるいは次のような式をB1セルに入力して下方にオートフィルドラッグしてはいかがでしょう。 =IF(A1="","",YEAR(TODAY())-YEAR(SUBSTITUTE(A1," ")*1)) または =IF(A1="","",DATEDIF(SUBSTITUTE(A1," ")*1,TODAY(),"Y")) なお,3番目に出てくる""の間には全角のスペースを入れます。

全文を見る
すると、全ての回答が全文表示されます。
  • darter
  • ベストアンサー率48% (12/25)
回答No.8

エクセルが日付だと判断できる文字列であればそれなりに処理してくれるんですが、”1970年 01月1日”のようにスペースがあると、日付とは判断してくれないようですね。 他にうまく判断してくれないパターンはありますか? ないのであれば、一手間増えますがA列に対して文字列置換で空白文字を除去してやればOKかと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

No4です。 おそらく生年月日が文字列になっているものがありますね。 No4の形式での年齢計算でしたら次の式をB1セルに入力し下方にオートフィルドラッグします。 =IF(A1="","",YEAR(TODAY())-IF(ISERROR(FIND("年",A1)),LEFT(A1,FIND("/",A1)-1)*1,LEFT(A1,FIND("年",A1)-1)*1))

全文を見る
すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

年齢の出し方ではなく、生年月日を日付のシリアル値にする方法を……。 恐らく、文字列として入っているのでしょう。 セルの書式を日付にしても駄目なら、そのまま次のことを試してみてください。 どこか適当なセルに「1」と、入力し、コピーします。次に「1970年1月1日」などが入っている範囲を選択し、「形式を選択して貼り付け」。貼り付け:値、演算:乗算で、貼り付けてみてください。文字列が日付のシリアル値になると思います。

coco-chanel
質問者

補足

ありがとうございます。 どこか適当なセルに「1」をいれた上に、「1970年1月1日」をコピーして、「形式を選択して貼り付けであっていますか? それなら、「1」のままで日付はでてこず・・・なのですが。 やり方が間違っていますか?

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

B列での年齢が現在の年における年齢でしたらB1セルに次の式を入力し下方にオートフィルドラッグします。 =IF(A1="","",YEAR(TODAY())-YEAR(A1)) なお、A列に入力されている生年月日がいろいろの表示形式になっているようですが、数式バー上では1970/1/1のように表示されるはずです。特に問題はないでしょう。

coco-chanel
質問者

補足

他の方の補足にも書かせていただきましたが、 このような式で出てくる年齢もあるのですが、 やはり、形式?によってエラーになるものがあります。 1970年 01月1日のように、年と月との間にスペースのある手書きが書かれた文字が 1970年1月1日とか、 1970/1/1とか、 1970/01/01とか 1970年1月1日 のものとは異なるのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • darter
  • ベストアンサー率48% (12/25)
回答No.3

■年齢の算出 年齢の算出にはDATEDIFという関数が使えます。 以下のように使います。 =DATEDIF(生年月日, 現年月日, "Y") ■混在した年月日表示について エクセルが認識できる年月日表示形式であれば、特に気にせずにそのまま使えるはずです。

coco-chanel
質問者

補足

=DATEDIF(生年月日, 現年月日, "Y")の式でやってみましたが、 やはり答えの出ないものがありました。 A1の形式を揃えないと無理なのでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • dr-9
  • ベストアンサー率47% (24/51)
回答No.2

次の式で良いと思います。 (IFは、A1が空欄であった場合に計算値に変な値が出ないようにする為の措置です。) =IF(A1="","",DATEDIF(A1,TODAY(),"Y"))

coco-chanel
質問者

補足

やってみたのですが、答えは#VALUE!でした。。 ちなみにやってみたのが、下記のような生年月日だったのですが、 年と月の間にスペースが出来てしまっているのがまずいのでしょうか?? 1970年 01月1日

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

A1は生年月日の表示形式が違うだけですから問題ありません。 2003ですと必要なセルをドラッグ、範囲選択し→書式→セル→表示形式→「日付」で統一できます。 A列1行から生年月日が入っているのでしたら年齢計算はB1に: =DATEDIF(A1,TODAY(),"Y") と入力します。 2行目以下は上の行の式をコピーします。

coco-chanel
質問者

補足

ご回答ありがとうございます。 A1の生年月日は、手入力したものをエクセルにエクスポートしているもので、表示形式→「日付」で統一できないのです。 まずはそこを統一させる方法があればいいのですが、 その方法もわからず・・・。 現在はそれで困っています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで生年月日から年齢をもとめたいのですが・・・

    生年月日から現在の年齢を出す方法をだす方法は知っていますが、過去のある時点の年齢を簡単に出す方法があれば教えてください。(たとえば 現在を平成14年12月10日 過去のある時点を平成10年1月1日としたとき、平成10年1月1日の時の年齢) あまりパソコンは詳しくないので、よろしくお願いします。 補足は何度でもしますm(__)m

  • エクセルの計算式

    エクセルで年齢計算をしたいのですが何方か教えて下さい。 作成の表はA列に氏名、B列に職業、C列に生年月日、D列に年齢、後いくつか項目があります。 例えば2012年4月1日を指定して各人の年齢を計算したいのですが、よろしくお願いします。

  • エクセルにて年齢を出したい

    いつも、お世話になっています。 今回は、エクセルにてA1に生まれた生年月日を入力して A2に現在の日付を入力 A3に現時点での年齢を出したいのですが どのような関数式にすれば良いですか教えてください。 例: A1=1950/1/1 A2=2008/9/16 A3=A2時点での年齢

  • エクセルでの年齢計算についてですが…

    いつもお世話になります。 今回はエクセルで年齢計算をしたいのですが、ちょっとした問題があるのです。 と申しますのは、生年月日がA1に年号、A2に年、A3に月、A4に日とそれぞれ数字を入れ、A5に現時点での年齢を表示したいのです。  作成例)  A1  A2  A3  A4  A5  昭和  49   3   3  30 一般的な「DATEDIF関数」だと、セルが上記のようにバラバラでは対応してくれないので、困っているのです。 どうしたらよいのでしょうか。 ご回答の程、宜しくお願い致します。  

  • Excelで生年月日から年齢を表示する方法

    Windows XPでoffice2002を使っています。 Excel2002で、年齢を入力して、今年度の年齢を表示する方法を教えてください。すなわち、来年この表を開いた場合、その年の年齢を表示させるようにしたいのです。 例えば、以下のような項目となるものと思いますが・・・ A          B          C 生年月日(西暦表示) 今年(today関数)  年齢(=B2-A2) しかし、通常の表示方法では、C列の値は年齢ではなく、西暦が返されます。 どのように設定すれば正しい年齢が表示されるでしょうか?

  • ASP 年度年齢の計算

    よろしくお願いします。 今、ASPとaccessでシステムを作成しています。 Access内に「顧客情報」テーブルがあるとします。 [顧客情報] ID | 名前 | 生年月日 001 A   19860622 このAさんの生年月日を抽出したとして、そこから年度年齢を計算するにはどのように記述したらよいでしょうか? 例えばAさんの年度年齢は、 2009年3月31日の時点…22歳 2009年4月1日の時点 …23歳 になります。 参考に、実年齢についてはわかりますので書いておきます。 実年齢=(today-生年月日)/10000 で出ました。 以上、すみませんがお力添え、よろしくお願い致します。

  • エクセルにて年齢を出したい

    エクセルにて年齢を出したいのですが 年、月、日が別々のセルに入力されている場合の 関数式を教えてください。 生まれた年 A1=S42 、 A2=5 、 A3=10 (A1は年、A2は月、A3は日) 入力時の日付 B1=H18 、 B2=9 、 B3=16 C1に年齢を出したいのですが、出来ますでしょうか? 教えてください。

  • エクセル DATEDIF関数

    色々調べたのですがよくわかりません。 DATEDIF関数で年齢計算させたいと思います。 適当なセルに本日の年月日を表示させ、 A列に生年月日、B列に年齢を出そうと思います。 そのため、B1にDATEDIF関数を入れ、B2から下の行に、この関数をコピーしました。 この結果、A列に生年月日を入れれば隣のB列に年齢は出るのですが、A列に生年月日を入れなくても、B列には生年月日を1900年とした年齢が表示されます。 (今年なら118歳が表示されます。) 生年月日を入れていない行には年齢を表示させたくないのです。 入力した人だけの平均年齢を出したいのですが、この118歳が邪魔になります。 どうすればいいのでしょうか。

  • Excel

    初心者ですみません。 従業員名簿を作りたいのですが、Excelで、生年月日を入力して隣の列に自動的に年齢はを出す方法を教えて下さい。 あと、入社年月日を入力して隣の列に勤続年月も…

  • エクセル

    エクセルのA列で生年月日を入力します。自動的にB列で現在の年齢が表示されるように設定をしたいのですが、どのような関数を入力すればよろしいですか??教えてください。

専門家に質問してみよう