[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『5ヶ月以下を繰り下げ、6ヶ月以上を繰り上げる』(うーみん)
いつも大変勉強させていただいております。
以前こちらで、A1に現在の日付を、A2に生年月日を入力すると、dateif関数を使いましてA3に「○歳○ヶ月」という表示がかえってくる方法をお聞きいたしました。現在はこの答えをもとにA4に条件式をいれまして、A5に(x−1)歳6ヶ月〜x歳5ヶ月をx歳と表示したいと思っております。しかしながら私のつくる条件式ではとても回り道し、かつ見苦しいものになってしまいます。どうにかしてこれを、できるだけセルの数をつかわず、かつ簡潔な方法でできないものかとおもい質問させていただいております。
エクセルの関数を調べましたところ四捨五入や切り捨て切り上げはみつかったのですが、5捨6入しかも0から11まで、というような都合のよいものはございますでしょうか?
どうぞよろしくおねがいいたします。
[エクセル2003][XP]
五捨六入は =ROUND(A1-SIGN(A1)*10^(-(0)-1),(0)) で、出来るようです。 A1 が数値で ()内の 0 が桁数になります。
>0から11まで、というような都合のよいものは... 式を組み合わせて =IF(A1<12,ROUND(A1-SIGN(A1)*10^(-(0)-1),(0)),A1) でしょうか?
詳しいセル番地や実際に使っている数式がわかれば 違った回答も有ると思います。 (jun53)
現在の状況は単純にしますと、
A1に現在の日付(=TODAY()) A2に生年月日(****/**/**) A3に年齢(=DATEDIF(A2,A1,"y")&"年"&DATEDIF(A2,A1,"ym")&"ヶ月") A4に○歳の数字部分(=DATEDIF(A2,A1,"y")) A5に○ヶ月の数字部分(=DATEDIF(A2,A1,"ym")) A6に条件式(=IF(A5<=5,A4,A4+1)&"歳")
という感じなんですけれども、これですと年齢を考えるのにA3〜A6まで4つのセルを使用する上まわりくどいかんじがしてなにか他に考え方がないものかと思うのです。
5捨6入の計算式を教えていただいてもA6の式が入れ替わるだけなんですが、でないとはおもいつつ、A5に13とかでたらどうするんだろうなどと考えると気になっていたので、教えていただけてとてもうれしいです。 (うーみん)
A3 =DATEDIF(A2,A1,"y")+ROUND(DATEDIF(A2,A1,"ym")/12,) (表示形式を 0"歳" ) で、いいんじゃないでしょうか。
月数を、12で割って、年単位として考えて、それを四捨五入して、 年数に足せばいいと思いますが…。 (kkk)
[kkk]さん、ありがとうございます、助かりました。
提示して頂いた上の計算なら五捨六入は必要ないと思いますが... そして、最初のご質問の >できるだけセルの数をつかわず、かつ簡潔な方法で... セル分けして各情報を見易くするのは一つの方法として良いと思いますよ。 多数の人を比較、分析するにも都合がいいですね。
ただ、 >A1に現在の日付(=TODAY()) これはどうしてもセルを使って表示させなければいけませんか? 計算式の為だけの TODAY() 表示でしたら A3に年齢: =DATEDIF(A2,TODAY(),"y")+ROUND(DATEDIF(A2,TODAY(),"ym")/12,) A4、 A5 数式内の A1 も TODAY() に修正すればA1の部分、一行目が必要なくなりますね。
あとは、 >現在はこの答えをもとにA4に条件式をいれまして、A5に(x−1)歳6ヶ月〜x歳5ヶ月をx歳と表示したいと思っております。 この意味が良くわからないのですが、、 [kkk]さんの式で解決でしょうか? (jun53)
2回目のご質問、 >でないとはおもいつつ、A5に13とかでたらどうするんだろうなどと... 上記の数式では 11 が最大で 12,13....は出ませんね。安心です(笑) (jun53)
年に換算すればそんなにすっきりするんですね。○歳○ヶ月にとらわれておりました(^^;)。 実際はいくつかのシートをつかったファイルになりますので、 単純にして説明させていただきましたがtodayを式にいれさせていただいたほうがよさそうです。 実際表示が必要ないのはA4とA5の情報になりますので、 年単位換算の方法は本当に目からうろこでした。
6捨5入はまたいつかの機会に生かしたいと思います(w)。ありがとうございました。 (うーみん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.