[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『生年月日から年度頭年齢をVBAで』(かじやさん)
生年月日から、年度頭年齢を算出したいです。
A1セルに入っている生年月日をもとに、B1セルに年度頭年齢を入力したいのですが、シート関数を使いたくありません。
VBAでできますか?
< 使用 Excel:Excel2016、使用 OS:Windows10 >
シート関数でできているなら、数式を提示していただければ回答が付きやすいでしょう。
(わからん) 2021/09/14(火) 13:15
一応、A1セルに生年月日を入れて↓のシート関数をB1セルに放り込めば正しい結果は出るのですが、今回は関数を使うと上手く表が作れなくなるため、できればVBAで解決したいです。
=DATEDIF(A1,IF(MONTH(TODAY())>4,DATEVALUE(YEAR(TODAY())&"/04/01"),DATEVALUE(YEAR(TODAY())&"/04/01")),"Y")
(かじやさん) 2021/09/15(水) 23:14
=DATEDIF(A1,IF(MONTH(TODAY())>4,DATEVALUE(YEAR(TODAY())&"/04/01"),DATEVALUE(YEAR(TODAY())&"/04/01")),"Y") ~~~~~~~~~~~~~↑~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~↑~~~~~~~~~~~~~~~~ まったく同じですよ? まったく同じ
関数なら =DATEDIF(A1,DATE(YEAR(TODAY()),4,1),"Y") でいいです。
で、4/2以降生まれた人は、274日足してやると翌年の生まれの人と同じになります。 すると歳は、「今年の年」-「水増し年」でも算出できます。
つまり、=YEAR(TODAY())-YEAR(A3+274)
VBAなら
Sub age() Debug.Print Year(Date) - Year(Range("A1") + 274) End Sub
Sub age() Dim cel As Range
For Each cel In Range("A1:A10") cel.Offset(, 1) = Year(Date) - Year(cel + 274) Next End Sub
(半平太) 2021/09/15(水) 23:54
>試す限りでは無理そうですね…。
無理じゃないと思いますが、 質問は、これだったんじゃないですか? ↓ >VBAでできますか?
VBA案を書きましたけど、読んでないのですか?
(半平太) 2021/09/16(木) 17:01
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.