- 締切済み
Excelについての質問です。
初めて質問させて頂きます。 Excelで日付の計算をしたいんですが、条件がありましてそれで困っています。条件は一ヶ月の単位を三十日で計算する事なんですが…。 例(2月1日+30=2月28日 2月1日+40=3月10日) こんな感じで計算できるようにしたいのですが…。 かなり困っていますので、ヒントだけでも教えて頂けないでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
#3です。ゴメンナサイ。法則提示にタイプミスがありました。 以下が正しいです。 2月1日+30=2月28日....2/1を含めている。 2月1日+40=3月10日....2/1を含めている。 2/10の31日後は3/11....2/10を含めていない。 10/1の31日後は11/2....10/1を含めていない。←ここのコメントが2/10になってしまっていた。 10/1+40=11/10.......10/1を含めている。 2/10+40=3/10.......2/10を2/1と誤っている。
なんだか、個々の計算例の法則がバラバラのように見えます。 起算日を入れたり入れなかったり... 2月1日+30=2月28日....2/1を含めている。 2月1日+40=3月10日....2/1を含めている。 2/10の31日後は3/11....2/10を含めていない。 10/1の31日後は11/2....2/10を含めていない。 10/1+40=11/10.......10/1を含めている。 2/10+40=3/10.......2/10を2/1と誤っている。 起算日がA列、加算日数がB列に入っているとして、 起算日を含めるなら、 =DAY(A2)-1+EOMONTH(A2,QUOTIENT(B2,30)-1)+MOD(B2,30) 起算日を含めないら、 =DAY(A2)+EOMONTH(A2,QUOTIENT(B2,30)-1)+MOD(B2,30) ですけど....
一ヶ月=30日ということは、一年を360日と考え、閏年も無視していいわけですね?だとすると、一番簡単な方法は月と日を別のセルに分け、計算するときにいったん全部日に変換することでしょう。 例えば月をA列・日をB列に入れることにして、4月1日ということで、セルA1に「4」、B1に「1」と入れます。次に、この月日を日に換算します。4月1日=(4-1)*30+1=91日ですね?こうなれば、30日足すのも45日引くのも簡単です。この、日に変換した結果をセルC1へ、加減したい日をセルD1へ、計算結果をセルE1へ入れておきます。 次に、結果を月日に戻すため、30で割ります。月の部分は、セルE1を30で割った結果の整数部分が答えです(INT関数かTRUNC関数を使って小数部を切り捨てます)。これをセルF1へ。日の部分は、セルE1からセルF1*30を引いた物が答えです。これをセルG1に入れます。これでひとまず完成です。 「ひとまず」というのは、結果(セルE1)がマイナスになった場合のことを考慮していないためです。そうなった時は、360を足す必要があります。これは年を考慮しない場合ですが、年も含めて考える場合は、年も日に換算して(360倍して)計算することになるでしょう。
- FEX2053
- ベストアンサー率37% (7991/21371)
どう考えても条件が不足していますね。 少なくとも2/10の31日後は何日(年によって違うのかどうかを含め)、 10/1の31日後は何日、という答えがないと計算式が推測できません。 何かの規定を演算式にするなら、その規定をまるまる書いて頂いた方が よりよい式を作れるんですけどね。例えば、素直に日数を加算しておいて 出てきた「月」をVLOOKUPで参照し、日数を減算するとか・・・。
補足
お返事ありがとうございます。 2/10の31日後は3/11になります。 10/1の31日後は11/2になります。 一ヶ月=30日という単位で計算してくれと言われてるんです。 40日だと一ヶ月+10日なので、10/1+40=11/10になります。 2/10+40=3/10になります。 これで分かるでしょうか? 分かりにくかったらすいません…。