[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『年齢101歳以上』(クンクン)
TODAYを使って生年月日から年齢を計算していますが、101歳をこえると皆100歳までしか計算されないようで・・・すみませんが101歳以上の年齢を出すにはどのようにしたらよいですか?
計算式をどのようにしているのか、分かりませんがエクセルは1900年(もしくは1904年) 以前は計算できません(1900/1/1がシリアル1で始まりになっています。) ですから1800/11/15と入力しても文字列扱いで数値として扱われません。しかし、工夫しだい で計算は出来ます。 =DATEDIF(DATE(LEFT(A1,4)+200,MID(A1,6,2),RIGHT(A1,2)),DATE(YEAR(TODAY())+200,MONTH(TODAY()),DAY(TODAY())),"y") 誕生日に200年をたして、今日の日付に200年を足して、つじつまを合わせます。(ケン)
1900/1/1以前と以降が混在して計算させるならば、 =IF(ISERROR(FIND("/",A1,1)),DATEDIF(A1,TODAY(),"Y"),1900-(LEFT(A1,FIND("/",A1,1)-1))*1+DATEDIF("1900/1/1",TODAY(),"Y")) では、どうでしょう。 日付表示にしていても1900/1/1以降は、実計算はシリアル値で行われます。 1900年以前と以降の日付を入力し、表示形式を標準にすると実計算される値の違いがよく分かります。 上の式では、1900/1/1以降は ISERROR(FIND("/",A1,1))=FALSE、以前はTRUEとなる事を応用しています。 能書きが当てにならない (sin)
sinさん、お久しぶりです。またPCが壊れてしまったのですか?(笑) 混在の件、1900-(LEFT(A1,FIND("/",A1,1)-1))*1+DATEDIF("1900/1/1",TODAY(),"Y"))も 良いですね。クンクンさん、sinさんの式をお勧めします。(ケン)
ケンさん、こんにちは。いつも拝見させていただいてます。VBEの方でも躍進中ですね。 何かと忙しくて、のぞくだけでしたが、今日はちょっと時間があったのでカキコしてみました。 苦手な日付・時間関連の関数に手を出してしまいましたが、大丈夫そうでしたね。 表示されてる物(しかも、日常的に目にするもの)と裏で実計算に使われるシリアル値、 数値と文字列など一辺倒ではいきませんなぁ。 エクセルも人生も (sin)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.