EXCELで年令計算する関数DATEDIFを使って、生年月日の記入をすると年令を表示しますが、
記入がないと 111才 になってしまいます。生年月日の記入がないときには 0才 にしたいのですが、わかりません。
  たとえば、生年月日のセルを         B12
        基準日(関数TODAY()を使用 )を E3
        年令表示セルを           B11
にして、セルB11に次の関数を入力します。
    =DATEDIF(B12,E3,"Y") & "才"
すると、生年月日がセルB12に入っていれば、年令を表示しますが、生年月日の記入がない(空欄)と111才と表示されてしまいます。空欄では0才などにしたいのですが、ご教示をお願いします。
セルの西暦・和暦やTODAY関数が影響するのかわかりません。

A 回答 (4件)

=IF(B12="",0,DATEDIF(B12,E3,"Y")) & "才"



でいかがですか。
    • good
    • 0

>記入がないと 111才 になってしまいます


(1)不思議そうに書いているが、日付シリアル値というエクセルの仕組みをしらないからそうなる
知らなければ、Googleででも「エクセル 日付シリアル値」で照会して勉強のこと。
(2)またエクセルでは、関数の引数で、数を入れるべき場合に、指定セルが空白だと0と看做して計算されることがほとんど
そして、日付シリアル値の0とは1999年12月31日のこと。だからその後現在年(月日)は111年たっているということだ。
=DATEDIF(A2,TODAY(),"y")
のような式を、=IF(A2="","",DATEDIF(A2,TODAY(),"y"))
にして別扱いで、計算させないようにすれば良い。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。日付シリアル値のためかなと思いましたが基準年が1999年12月31日で0とは思いませんでした。勉強になりました。111才の意味がわかりました。
=IF(B12="","",DATEDIF(B12,TODAY(),"y"))で実施しましたが年号が表示されました。
=IF(B12="",0,DATEDIF(B12,E3,"Y")) & "才"でうまくいきました。ありがとうございました。

お礼日時:2011/04/16 21:13

 



=if(B12="",0,datedif(B12,E3,"Y")&"才")
あるいは
=if(B12="",0,datedif(B12,E3,"Y"))
として、セルの書式設定で表示形式を
G/標準"才"
 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。教えていただいた関数
=IF(B12="",0,DATEDIF(B12,E3,"Y")&"才")では"才"が表示されませんでした。
=IF(B12="",0,DATEDIF(B12,E3,"Y"))&"才"でうまくできました。
=if(B12="",0,datedif(B12,E3,"Y"))でセルの書式設定で表示形式を G/標準"才"にしてもできることがわかりました。
ありがとうございました。

お礼日時:2011/04/16 20:58

原因は分かりませんが、とりあえず


B11=IF(B12="",0,DATEDIF~) と
してみては如何でしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。教えていただいた関数で実施しますと、「入力した数式は正しくありません。」のエラー表示が出てきてしまいました。原因はよくわかりませんでした。
ありがとうございました。

お礼日時:2011/04/16 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセル プルダウンの作り方

お世話になります。
エクセルでプルダウンの作り方を教えていただけませんでしょうか?
住所を▼のボタンでクリックしたら【北海道,青森,秋田,岩手・・・】などの選択ができるようにしたいのです。
宜しくお願いします。

Aベストアンサー

メニューから「データ」、「入力規則」、「設定」で「入力値の種類」を「リスト」を選択します。
そうすると「元の値」という表示がでますので、そこで前もって作っておいたリストの範囲を指定します。
多くないのでしたら、そのままそこにカンマで区切って入力しても出来ます。

QExcelのDATEDIF関数を使って年齢を出しても正しく表示されません

今、調査のためにExcel2003の関数を使って、年齢を出す作業をしようとしています。
同じような質問を参照してやってみたのですが、以下のように現れます。
セルD2:「1982/1/1」←生年月日
関数:「=DATEDIF(D2,TODAY(),"Y")」
その結果表示された値:「1900年1月26日」

なぜ年齢が表示されないのかが疑問です。
どうか宜しくお願いします。

Aベストアンサー

セルの書式設定で「数値」にしてください。

Qエクセルの0の表示、非表示に関する質問です。

エクセルで0の表示又は非表示にする設定は昔のエクセルだとセルの書式設定で簡単に出来たと思うのですが、最新のエクセルでは出来ません。やり方を教えて下さい。

Aベストアンサー

こんにちは!

いくつかのやり方がありますが、昔から変わっていないと思います。
Excel2010以降のバージョンをお使いの場合
(Excel2007も似たような感じですが、表示が少し異なります)

① メニュー → ファイル → オプション → 詳細設定 → 「次にシートで作業するときの表示設定 → ゼロ値のセルにゼロを表示する のチェックを外してOK

② 「0」を表示させたくないセルを範囲指定 → 右クリック → セルの書式設定 → 「表示形式」タブの「ユーザー定義」で
0;;
としてOK

※ ①の場合はSheet全体が対象となります。m(_ _)m

QEXCEL2002で,IF thenの関数式を使い、値が「空白」なら、もう一方の関数式を代わりに代入する方法

 EXCEL2002で,IF thenの関数式を使い、値が「空白」なら、もう一方の関数式を代わりに代入する方法を教えて下さい!

(1) 通常なら、AA5というセルに、
=RSS|'1332.T'!現在値
 という関数式が入っているとします。
(2) ここで、元々上記式が入るAA5セルの値が「空白」(⇒決して「0」ではない。ことに留意して下さい。)であるなら、もうひとつ用意した
 =RSS|'1332.T'!○○○
を文字通り、選択的に用い、IF thenの関数式を使って、その値を表示させる。
 どちらの式も命令文の一文として、勿論、AA5に入っています。
 即ち、間違っていると思うのですが、数式のイメージとしては、
 IF =RSS|'1332.T'!現在値=「 」 then =RSS|'1332.T'!○○○
(3)こうしたIF thenの関数式の”正しい式”を教えて頂けないでしょうか? 
 何卒、宜しく御願いします。

Aベストアンサー

(1)>Range("AA5").Formula⇒Range("AA5:AA229").Formulaに変更すれば
あくまでAA5が空白でいいという前提ならOKですが
たぶんAA6に対しても、となってくるのでは?そうなるとFor~Next使わないとたぶん無理
(2)私もRSSは知らなかったのですが、テストしてみたら何となく外部参照しているくらいしか分からなかったんで…
>返される値が、空白
どゆこと?関数が入力されているわけではないのですか?
それともマクロで数式=.Valueとなっているのでしょうか?
>前の条件式、RSS|'1332.T'!現在値 と比較してみると、唯一の違い は、「○○○」の部分でしかないので、
 「○○○」以前の数式「RSS|'1332.T'!」を上手に「置換」を使って、「入力式」を普遍化できないでしょうか?
言っていることがいまいち…

Q(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

(Excel)エクセルのバージョンごとの使用可能関数リストがあるサイト

Excel2007でIFERROR関数などを使っていました
しかし、以前のExcelバージョンだと使えないようです。
そこで、どの関数がどのExcelバージョンから使用可能か?
というリストのようなものを掲載しているサイトはありますか?

Aベストアンサー

下記ページで2007で追加された関数が解ります。

Excel(エクセル)基本講座:Excel(エクセル)関数一覧表
http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/itiran.html

QExcelのDATEDIF関数で月日のスペース

Excel2003です。
DATEDIF関数で年令表をつくるとき
昭和25年12月12日と
昭和25年8月8日の年月日の位置をそろえるために
昭和25年 8月 8日
と 8月 8日の前にスペースをいれたらエラーになってしまいました。
(スペースを入れた方が見映えがよいので)
スペースをいれても有効になる方法がありましたら
教えてください。

Aベストアンサー

>ggg_0e"年"_0m"月"_0d"日"

だと、二桁でも前にスペースが入りませんか?
一桁と二桁の時に場所を調整したいんですよね?

日付の表示をスペースで調節したいという要望はたまにあるのですが2003までですと表示形式だけではまず不可能です。

別セルでTEXT関数を使い年や月や日が一桁の場合をそれぞれ場合分けして表示するなどの方法が必要になります。
2007以降ですと条件付き書式で表示形式が変えられますので同セルでできないこともないですがやはり同様に場合分けが必要です。

要は年齢が間違いなければいいことですのでそこまで見た目にこだわる&手間をかける必要性は内容に思いますが…
どうしてもというなら表示用に文字列で日付を入力し、計算用には別セルで日付をいれて計算させては?

Qエクセルで、3Dのドーナツグラフの作成方法を教えてください

 ある雑誌の中で、ドーナツ(真中に丸い空白)の3Dグラフを見ました。
 同じように、エクセル2002でドーナツの3Dグラフの作成をする事は可能でしょうか? もし可能であれば、作成方法を教えてください。
 どうぞ宜しくお願い致します。 

Aベストアンサー

ドーナツグラフの書式で「影つき」を選ぶと微妙に…(^^;

3D円グラフのように斜め上から見たような図だったのでしょうか?

QEXCEL DATEDIF関数について

質問があります。

EXCELのDATEDIF関数で日付の期間内の年数、月数、日数、時間を2つのデーターから算出したいのですが、うまくできません。

そもそもDATEDIF関数では時間に対しては対応できないのでしょうか?
また算出できる方法が有れば教えて頂けないでしょうか?

データー基(例)
A,14/04/30 00:01
B,14/05/02 05:03

宜しくお願い致します。

Aベストアンサー

>そもそもDATEDIF関数では時間に対しては対応できないのでしょうか?
>また算出できる方法が有れば教えて頂けないでしょうか?
DATEDIF関数は開始日から終了日までの期間を計算する関数で年数、月数、日数までが対象です。
時間も含む場合は終了日時-開始日時として計算し整数部を日数、端数部を時間に分けて文字列に変換すべきでしょう。
A1=2014/04/30 00:01
B1=2014/05/02 05:03
C1=INT(B1-A1)&"日"&INT(MOD(B1-A1,1)*24)&"時間"&ROUND(MOD(MOD(B1-A1,1)*24,1)*60,1)&"分"
C1セルは日数と時間数となります。
月数や年数を必要とするときは1ヶ月の日数、1年の日数を定義する必要があるでしょう。

Qエクセル「VLOOKUP」の使い方

エクセル2000です

「名簿&住所録」シートを検索して、その人の電話番号を表示しようとしています。

例.
=VLOOKUP("山田 太郎",'名簿&住所録'!F:M,7,FALSE)


この"山田 太郎"の部分を、可変(セル「A1」や「A2」)に指定できないでしょうか?

例.
=VLOOKUP(A1,'名簿&住所録'!F:M,7,FALSE)

ヘルプを見ましたが分からなくて、、、

Aベストアンサー

A列に名前(山田 太郎)を入力
B列に =VLOOKUP(A1,名簿&住所録!$F:$M,7,FALSE) を設定してコピー

QExcelのDATEDIF関数にて

Excel2002です。
DATEDIF関数とTODAY()関数を使って
2004/1/1から今日までの日数を出すにはどのようにセルに書けばよいのでしょうか教えて下さい。

=DATEDIF(2004/01/01,today(),"D")
と書くと36173と言う数字が帰ってきてしまいます。

よろしくお願いします。

Aベストアンサー

こんにちは。maruru01です。

日付は、「""」で括りましょう。

=DATEDIF("2004/1/1",TODAY(),"D")

「""」で括らないと、「2004/1/1」は、
2004÷1÷1=2004
という数値になり、2004というシリアル値に対応する日付
「"1905/6/26"」
を指定することになります。
(だから、36173のような数値になります。)

なお、単に日数を出すなら、単純な引き算でも出来ます。

=TODAY()-"2004/1/1"

この場合も、日付には「""」が必要ですが。


人気Q&Aランキング

おすすめ情報