• ベストアンサー

エクセルで、数値を年と月に分けて表示したい。

 いつも質問ばかりして申し訳無いのですが、また一つ出来ないことが出てきてしまいました。(このカテゴリー内を検索したのですが、私と同じ内容のものが見つけられませんでした。) 内容は、タイトル通りなんですが、ある計算(月数)によって出た答えを 「それは[ 2 ]年と[ 5 ]ヶ月ですね。」 というふうに出したいのです。 例えば、100万円のものを買って、毎月3万円づつ返していったら何年何ヶ月かかるのか(金利とか手数料とか考えないで)が知りたい。その際、小数点以下は繰り上げていきたい。普通に計算すると33.333・・となり、そのままなら2年と9.33・・ヶ月になるので、そこは2年と10ヶ月と表示させたいのです。また、答えの年と月のセルは分かれています。 自分で簡単にできそうな気がしていたのですが、解かりませんでした。どなたか回答をよろしくお願い致します。

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

  • ベストアンサー
  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.7

まずごめんなさい。No.5の回答、年のほうが  = INT(A1/B1/12) の間違いですね。 あと、11ヶ月を上回った時の処理ですが (2年と11.5ヶ月の場合、3年0ヶ月とすべき) とりあえずは、ifで切り分けるしかないかもしれません。年の欄に  =IF(ROUNDUP(MOD(A1/B1,12),0)=12,INT(A1/B1/12)+1,INT(A1/B1/12)) 月の欄に  =IF(ROUNDUP(MOD(A1/B1,12),0)=12,0,ROUNDUP(MOD(A1/B1,12),0)) ではいかがでしょう? 長くなってしまいましたが。もっとよいやり方を見つけたらまた報告します。

vulcan800
質問者

お礼

ご丁寧に有難う御座います。私の質問に真剣に取り組んで下さっているのがよく分かりました。今回は締め切らせていただいて、ポイントを付けさせていただきます。 このお礼の欄を借りて申し訳ありませんが、みなさん本当に有難う御座いました。

その他の回答 (6)

noname#176215
noname#176215
回答No.6

質問そのままの答えがお望みなら A1:1000000 B1:30000 として ="それは[ "&TEXT(INT(A1/B1/12),"[DBNum3]0")&" ]年と[ "& TEXT(MOD(ROUNDUP(A1/B1,),12),"[DBNum3]0")&" ]ヶ月ですね。" こうしないとダメかと思います。

vulcan800
質問者

お礼

回答ありがとうございます。質問でうまく表現できませんでした。文章そのまま答えとして一つのセルに出す必要は無かったのですが、エクセルにコピペしてみて、思わず「ほ~」と思いました。いつか使う時が来ると思いますので、それまで教えて頂いた関数を調べて自分でも迷わず使えるようにしていきます。とても勉強になりました。

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.5

年を表示するセルには、月を12で割って、切り捨てた値を入力すればよく、 月を表示するセルには、月を12で割った余りをさらに繰り上げた値を入力すればよいのですね。 説明のために、A1のセルに「1,000,000」(100万円)、B1のセルに「30,000」(3万円)が入力されているとしましょう。 年のセルには以下のように入力します。  = INT(A1 / B1) 月のセルには以下のように入力します。  = ROUNDUP( MOD(A1/B1, 12), 0 ) 年のセルには、他にもROUNDDOWN関数を使う方法もありますが、INT関数のほうが文法が簡単です。 ちなみに  = INT(A1 / B1) & "年と" & ROUNDUP( MOD(A1/B1, 12), 0 ) & "ヶ月です" と入力すれば、1つのセルで表示できますよ。

vulcan800
質問者

お礼

回答有難う御座います。この後の回答で補足までして頂いて、たいへん感謝しています。自分で他の回答も含めて勉強します。取り組んでいただき有難うございました。

  • mamo2005
  • ベストアンサー率58% (7/12)
回答No.4

単純に値(例の場合は33.333…)を12で割った商と剰余をそれぞれ年数、月数とすればよいと思います。 式にすると 年数 =QUOTIENT(値,12) 月数 =ROUNDUP(MOD(値,12),0) でどうでしょうか。

vulcan800
質問者

お礼

回答有難う御座います。他の方の方法などで、表は作れそうです。でもこれからmomo2005さんの使われた関数も、次に利用できそうな場面があったら使えるように勉強します!ありがとうございました。

  • melgirl
  • ベストアンサー率39% (142/364)
回答No.3

ある計算によってでた答えがA1にあるとします。 年数を表示されるセルには =INT(A1/12)(これをB1のセルとする) 月数を表示させるセルには =ROUNDUP(A1-B1*12,0) これでいけると思いますが! ※INTは()内の値を切り捨てて整数にする関数  ROUNDUPは指定の桁数に切り上げる関数です。

vulcan800
質問者

お礼

はい!その方法で出来ました!もちろん他の方の方法でも・・・色々あるんですね。これからそれぞれ調べて自分のものにして行きます。ありがとうございました。

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

10ヶ月にするなら切り上げすれば良いのでは? 月の方をROUNDUP関数でできると思いますよ。 ただ問題がひとつ 11.3333ヶ月の場合です。 12ヶ月と表示するか、1年繰り上げるかどちらでしょうか?

vulcan800
質問者

お礼

回答有難う御座います。ご指摘通り私の質問はあいまいでしたね。(思いつかなかったです) たくさん回答が出ましたので、その中で表を作ってみます。ありがとうございました。

  • jurarumin
  • ベストアンサー率34% (190/544)
回答No.1

セルのA2に借入金額 セルのB2に毎月返還額 として セルのC2に年数 セルのD2に月数を表示するとします。 セルC2に=ROUNDDOWN(A2/B2/12,0) セルD2に=ROUNDUP((A2-(B2*C2*12))/B2,0) と関数を埋めてみてください。 後、A2,B2に値が無い場合や0の場合の処理は、御自分で考えてみてください。

vulcan800
質問者

お礼

早速の回答を有難う御座います。すぐにエクセルでやってみました。・・・できました。質問してからちょっとの間にjuraruminさんを含めてたくさんの回答が来ました!どれも少しずつ違いますが、どれも求めていた答えが出ました。これからそれぞれ関数の意味などを調べて、自分でも使えるようにがんばります。

関連するQ&A