• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文: EXCELのIF関数についての質問です。)

ExcelのIF関数での年齢計算と条件判断について

このQ&Aのポイント
  • ExcelのIF関数を使って、得点による合格判定や年齢計算を行いたい場合、特定の条件を満たすかどうかを判定するための真偽値が必要です。
  • TRUEは、条件が真であることを示す値であり、年齢計算においては、「今日の月が誕生月よりも大きい」もしくは「誕生月と同じで、今日の日が誕生日以上」である場合に使用されます。
  • TRUEがない場合にエラーが出るのは、IF関数の条件が真偽値を必要とするためであり、条件判断ができないためです。TRUEを削除することはできず、必要な条件判断を正確に記述する必要があります。

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

  • ベストアンサー
回答No.5

> EXCEL2000を使用していますが、挿入→関数→すべてを表 > 示で確認するのですが、見当たりません。 そこにはありませんよ。これはMS-DOS時代に表計算ソフトの代表格 だったLotus 1-2-3と互換性を持たせるために、内緒で搭載されてい る関数ですから、ヘルプの方で日付/時刻関数一覧を出さないと載っ てません。月数の計算に関してはバグがあるので要注意ですが、年 齢計算くらいには充分使えます。 ちなみにdatedif関数を使わない場合でも、 =year(today())-year(G13)-(text(G13,"mmdd")>text(today(),"mmdd")) くらいにはシンプルになります。同じことをif関数を使って =year(today())-year(G13)-if(text(G13,"mmdd")>text(today(),"mmdd"),1,0) と書くこともできます。日本語で言うと「基本は今年の年-誕生年だ けど誕生日がまだ来てないっぽかったらもう1年引く」ですね。

その他の回答 (4)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.4

>この中にあるTRUEの意味がわかりません。 TRUEは条件が真であるという意味なのでこのIF文では不要ですね。 OR(MONTH(TODAY())>MONTH(G13),AND(MONTH(TODAY())=MONTH(G13),DAY(TODAY())>=DAY(G13)) )=TRUE 条件部分は上記の式の部分で OR(現在月が誕生月より後,AND(現在月が誕生月,現在日は誕生日以降))が真 という意味になります。 まあ確かに不要ですね。式を否定して真偽を入れ替えるのにFALSEを使うのならまだわかりますけど... >TRUEはなくてもよいと思い、削除してみましたが、エラーが出ました。 No.1の方の言われるようにTRUEを削除する場合は=も一緒に削除が必要です。 >そうでない場合は年齢は「今日の年」-1-「誕生の年」です。 YEAR(TODAY())-YEAR(G13-1) では言われるような結果になりません。 YEAR(TODAY())-YEAR(G13)-1の間違えでは?

keikaku
質問者

お礼

落ち着いてやり直したらうまくいきました。ありがとうございました 「YEAR(TODAY())-YEAR(G13)-1の間違えでは?」もご指摘のとおりでした。ありがとうございました。

回答No.3

久々に見る迂遠な式ですね。削除するなら「TRUE」だけじゃなくて 「=TRUE」ですが、そこは大丈夫ですか。year(G13-1)はもちろん書 き間違いのはずですが。 ちなみに同じ意味の式は、 =datedif(G13,today(),"Y") と書きます。

keikaku
質問者

お礼

ありがとうございました。「datedif」という関数ははじめて見ました。EXCEL2000を使用していますが、挿入→関数→すべてを表示で確認するのですが、見当たりません。こんな便利な関数、どこでお知りになられてんですか?

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

ご質問のように提示された数式は「=TRUE」の部分が無駄な判定式になっています。 もし「=TRUE」を削除してエラーが出るならそれ以外の原因が考えられます。 具体的にどのようなエラーが表示されるのでしょうか? エラーが出る可能性としてはYEAR(G13-1)の部分にあるように思いますが、たとえばG13セルが空白ということはないでしょうか?

keikaku
質問者

お礼

落ち着いてやり直したらうまくいきました。ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

TRUEを消す: =IF(OR(MONTH(TODAY())>MONTH(G13),AND(MONTH(TODAY())=MONTH(G13),DAY(TODAY())>=DAY(G13))),YEAR(TODAY())-YEAR(G13),YEAR(TODAY())-YEAR(G13-1)) 理解なさっている内容は合ってます。不要な内容です。 >TRUEはなくてもよいと思い、削除してみましたが、エラーが出ました。 単純な編集ミスと思います。落ち着いてもう一度試してみてください。 「=TRUE」を削ります。

keikaku
質問者

お礼

落ち着いてやり直したらうまくいきました。ありがとうございました。

関連するQ&A

専門家に質問してみよう