- ベストアンサー
値が未入力時に式の結果を空欄(非表示)にしたい。
EXCEL2003を使っています。 満年齢の表示リストを作っています。 A1のセルに生年月日を入れ、B1のセルに「=DATEDIF(A1,TODAY(),"y")」の式を入れました。 最終セルがB10としてBのすべてのセルには式を入れ、AのセルにはA5までしか値を入れなかった場合、B5までは数字(年齢)が表示されたのですがB6~B10まではなぜか【108】という表示がされます。 式を残したままこれを空白もしくは、非表示にする方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
A1セルが空欄の場合 1900年と見なされますので 108年になりますね A1セルが 1910(年)以下ならば空欄にするように =IF(A1>1910,DATEDIF(A1,TODAY(),"y"),"") 1910は適当に変えてください
その他の回答 (3)
- arubaitooyazi
- ベストアンサー率51% (278/538)
こんなのもあります。 =IF(ISBLANK(A1),"",DATEDIF(A1,TODAY(),"y")) B2からはコピーして下さい
お礼
きれいに表示されました。 ありがとうございました。
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 このように、少し年齢計算の結果に差が出ています。 ここんとこをどう考えるかで多少式も変わると思います。
お礼
貴重な意見をありがとうございました。 うるう年の問題ですね。 そこまで難しく考えていませんでした。 細かい説明、ありがとうございました。
- newbranch
- ベストアンサー率30% (319/1053)
=if(A1="","",DATEDIF(A1,TODAY(),"y")という式をB1にいれて、B2~B10にコピーすれば、Aの欄が空白なら、何も表示されません。
お礼
即答の回答ありがとうございました。 教えていただいた式で解決できたのですが、同時にエラーも出てしまいました。 エラーを無視することで解決でき、問題はなかったですが(苦笑)。 ありがとうございました。
お礼
即答の回答ありがとうございました。 1900年とみなされるのは知りませんでした。 ありがとうございました。