電子書籍の厳選無料作品が豊富!

EXCEL2003を使っています。

満年齢の表示リストを作っています。

A1のセルに生年月日を入れ、B1のセルに「=DATEDIF(A1,TODAY(),"y")」の式を入れました。

最終セルがB10としてBのすべてのセルには式を入れ、AのセルにはA5までしか値を入れなかった場合、B5までは数字(年齢)が表示されたのですがB6~B10まではなぜか【108】という表示がされます。

式を残したままこれを空白もしくは、非表示にする方法を教えてください。

A 回答 (4件)

A1セルが空欄の場合 1900年と見なされますので 108年になりますね



A1セルが 1910(年)以下ならば空欄にするように

=IF(A1>1910,DATEDIF(A1,TODAY(),"y"),"")

1910は適当に変えてください
    • good
    • 0
この回答へのお礼

即答の回答ありがとうございました。
1900年とみなされるのは知りませんでした。
ありがとうございました。

お礼日時:2008/02/22 09:52

こんなのもあります。


=IF(ISBLANK(A1),"",DATEDIF(A1,TODAY(),"y"))
B2からはコピーして下さい
    • good
    • 0
この回答へのお礼

きれいに表示されました。
ありがとうございました。

お礼日時:2008/02/22 09:59

2004/2/29___0 <--- =DATEDIF(A1, "2005/02/28","y")


2004/2/29___1 <--- =GetAge(A2, "2005/02/28")

Public Function GetAge(ByVal Birthday As Date, ByVal Hiduke As Date) As Integer
  If Birthday = CDate("0:00:00") Then
    GetAge = 0
  Else
    GetAge = DateDiff("yyyy", Birthday, Hiduke) + _
           (Format(Birthday - 1, "mm/dd") > Format(Hiduke, "mm/dd"))
  End If
End Function

このように、少し年齢計算の結果に差が出ています。
ここんとこをどう考えるかで多少式も変わると思います。
    • good
    • 0
この回答へのお礼

貴重な意見をありがとうございました。
うるう年の問題ですね。
そこまで難しく考えていませんでした。
細かい説明、ありがとうございました。

お礼日時:2008/02/22 09:55

=if(A1="","",DATEDIF(A1,TODAY(),"y")という式をB1にいれて、B2~B10にコピーすれば、Aの欄が空白なら、何も表示されません。

    • good
    • 0
この回答へのお礼

即答の回答ありがとうございました。
教えていただいた式で解決できたのですが、同時にエラーも出てしまいました。
エラーを無視することで解決でき、問題はなかったですが(苦笑)。
ありがとうございました。

お礼日時:2008/02/22 09:50

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