• ベストアンサー

エクセル “13ヶ月”を“1年1ヶ月”にする関数

エクセルで苦戦中です。 分かるかたいらっしゃいましたら教えて下さい。 働いている年月を年単位でなくて、月単位(何ヶ月)で計算しています。 それを、関数を用いて自動で年単位に変換したいのです。 【例】13ヶ月(ヶ月の部分は別セル)→→→ 1年1ヶ月(1つのセルに全て表示) 1つのセルに全て表示させるというところがポイントです。 思考錯誤して、↓以下の数式でやってみたのですが、 これだと問題が2つあるのです。 =IF(INT(A1/12)=0,"",TEXT(INT(A1/12),"0年")&TEXT(MOD(A1,12),"0")) ※A1の部分に該当の月数を入れます。 問題1:12ヶ月を切った場合表示されない。 問題2:“1年1”とだけ表示され、“ヶ月”部分は別セルが必要。 問題1は解決できなくて困ってしまっています。。。 問題2は妥協できますが、できれば1つのセルに全ての言葉を表示させたいです。 どなたか分かる方、アドバイスをお願い致します。

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

  • ベストアンサー
回答No.4

=IF(INT(A1/12),TEXT(INT(A1/12),"0年"),"")&IF(MOD(A1,12),TEXT(MOD(A1,12),"0ヶ月"),"") x年ちょうどの時に0ヶ月を表示しないパターンです。表示したけれ ば,後半のif関数をなくして =IF(INT(A1/12),TEXT(INT(A1/12),"0年"),"")&TEXT(MOD(A1,12),"0ヶ月") とします。

olivia747_400
質問者

お礼

早速のお返事ありがとうございます。 急いでいたので助かりました。 12ヶ月=1年ちょうどの月でも0ヶ月にならないんですね! ご丁寧にありがとうございました。

その他の回答 (3)

回答No.3

=IF(INT(A1/12)=0,"",TEXT(INT(A1/12),"0年"))&IF(MOD(A1,12)=0,"",TEXT(MOD(A1,12),"0ヶ月")) でどうでしょう。

olivia747_400
質問者

お礼

早速のお返事ありがとうございます。 急いでいたので助かりました。 12ヶ月=1年ちょうどの月でも0ヶ月にならないんですね! 感謝、感激です!

  • nicnicnic
  • ベストアンサー率47% (8/17)
回答No.2

はじめまして、 A列に月数が入っているとして… =TEXT(INT(A1/12),"@") & "年"& TEXT(MOD(A1,12),"@") & "ヶ月" こんな感じでしょうか?

olivia747_400
質問者

お礼

早速のお返事ありがとうございます。 急いでいたので助かりました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

=IF(INT(A1/12)=0,TEXT(A1,"0か月"),TEXT(INT(A1/12),"0年")&TEXT(MOD(A1,12),"0か月")) ではいかが?

olivia747_400
質問者

お礼

早速のお返事ありがとうございます。 急いでいたので助かりました。

関連するQ&A

  • Excelで集計に関する関数の質問です

    添付した図を基に質問します。4行目をウィンドウ枠固定して表示してあります。 行列番号を見てもらえたら分かると思いますが、要所でセルを結合してあります。 セルB6に=IF(B5="","",(IF(B5>1999,0,IF(E5<501,0,IF(AND(B5>499,E5<2001),(TIME(INT(E5/100),MOD(E5,100),0)-TIME(INT(B5/100),MOD(B5,100),0)),IF(B5<500,TIME(INT(E5/100),MOD(E5,100),0)-(TIME(INT(500/100),MOD(500,100),0)),IF(E5>2000,TIME(INT(2000/100),MOD(2000,100),0)-TIME(INT(B5/100),MOD(B5,100),0),0))))))*24) D6に=IF(B5="","",IF(AND(B5<500,E5>500),(TIME(INT(500/100),MOD(500,100),0)-TIME(INT(B5/100),MOD(B5,100),0)),IF(AND(B5<2000,E5>2000),(TIME(INT(E5/100),MOD(E5,100),0)-TIME(INT(2000/100),MOD(2000,100),0)),IF(AND(B5>499,E5<2001),0,(TIME(INT(E5/100),MOD(E5,100),0)-TIME(INT(B5/100),MOD(B5,100),0)))))*24) これは、項目A列5行目を参照しています。以下オートフィルします。 例えば7時から10時10分の差を求める場合、B6セルに700、D6セルに1010と1分単位で入力し、表示形式は0.0" H"です。 項目C,Dも同様で、項目C内E列には1時間30分の場合1.5と入力し30分単位です。表示形式は同様。 A列の日付欄には、1月1日の場合1/1と記入します。表示形式は日付の月/日です。 上記内容で添付図の上の表(A3:S30)項目B~D列のデータを下の表(A32:S39)で集計しようと思います。 1、F35~F38に月ごとの時間の計を表示させる関数 2、J35~J38には、月ごとの時間*単価を項目別に計算した値の計を表示させる関数 3、P35~P38にも上記同様の計を表示させる関数 以上、1,2,3に入力する関数が知りたいので、宜しくお願いします。 なお不明な点がありましたら随時補足していこうと思います。

  • Excelでこんな事出来ますか?2

    先日下記のような質問をさせていただきました。 >質問の仕方が下手かも知れませんけど・・・コクヨなどで発売している見積書などがありますよね!? まったく同じようにExcelでひな形を作成しました。 ただ、「数量」「単価」「合計(税抜・税込)」というのがあるのですが、合計を出すには「数量」×「単価」で問題ないのですが、答えが出る合計のところには9つのセルがあるんですよね。答えを桁合わせで各セルに表示させる事って出来るのでしょうか? 出来るのであれば嬉しいのですが・・・ 詳しい方教えて下さい。 よろしくお願いします。 この質問に対して下記のアドバイスをいただきました。 >9つのセルを使って =INT($A3*$B3/100000000) =INT(MOD($A3*$B3,100000000)/10000000) =INT(MOD($A3*$B3,10000000)/1000000) =INT(MOD($A3*$B3,1000000)/100000) =INT(MOD($A3*$B3,100000)/10000) =INT(MOD($A3*$B3,10000)/1000) =INT(MOD($A3*$B3,1000)/100) =INT(MOD($A3*$B3,100)/10) =INT(MOD($A3*$B3,10)) セルの幅を調節します。 これで、上手くセルに数字が収まったのですが、縦の 合計も同じように9つのセルがあるのですが、この場合の縦の合計はどのような巻数式になるのでしょうか? 質問が下手で申し訳ありませんが、詳しい方よろしくお願いします。

  • エクセルで月表示を年表示に変えるには?

    分かる方がいらっしゃったら教えて下さい! エクセルである期間の開始から終了までの月数が表示されています。 例)Aに1992/11/1(開始)、Bに2005/2/1(終了)、Cに147(月数) このCを月の単位ではなく、年の単位に直すにはどうすれば良いのでしょう・・・? 目指しているのは147ヶ月なので、12年と3ヶ月⇒12.03と表示したいのです。 よろしくお願いします!

  • 《Excel2007》INT関数について

    あるセルに入っている数字(表示形式は通貨)から1桁ずつ 別のセルに移したく雛型を作っています。 《例》A1=12.34を、C1=1 D1=2 E1=3 F1=4、と言う風に入れたく、 F1=INT(MOD(SIGN($A$1)*$A$1/0.01,10)) E1=INT(MOD(SIGN($A$1)*$A$1/0.1,10)) D1=INT(MOD(SIGN($A$1)*$A$1/1,10)) C1=INT(MOD(SIGN($A$1)*$A$1/10,10)) B1=INT(MOD(SIGN($A$1)*$A$1/100,10)) ↑B1はこの例では必要ないですが、A1の数字が増えたときのため。 と、入れているのですが、 (1)ない位に0が入ってしまうのを回避できますか? (この場合、10の位までしかないのに、100の位=B1に0が返される) (2)一番右の桁の数字がたまにずれるのですが理由が分かりません… 勉強不足ですみません。よろしくお願い致します。

  • エクセルでの時間の計算

    お世話になります。 エクセルで時間の計算をしています。 ある時間、例えば2:00を0:15で割ると、 シリアル値では8.0000...で割り切れます。 小数点以下が時間になるので、時間で表現すると0:00です。 ところが、19:00引く17:00をすると2:00になりますが、 これをイコールで別のセル(例えばA1)に表示させ、 さらに別のセルで、mod(A1,time(0,15,0))にすると割り切れず、0:15となって余りがでます。 仮にA1/time(0,15,0)とすると、シリアル値は8で割り切れます。 なぜでしょうか? やりたいのは、時間計算した結果が15分単位になっているかどうかを判別したのです。 時間計算していない2:00を0:15で割るとシリアル値では少数以下がゼロとなって 割り切れるからOKとなるのに、 時間計算された2:00をtime(0,15,0)で割ると0:15になってしまいます。 これがもし30分単位のtime(0,30,0)だと、時間計算されたセルの2:00でも 少数以下がちゃんとゼロになってくれます。(modを使った余りの計算) また、この他にもなにか15分単位になっているかを判別する方法は有るでしょうか? intをつかって時間-int時間で余りが出ないかで判別等もやってみましたが どうもうまくいきません。 どうかご教授下さい。m(_ _)m

  • エクセルの関数でこんなのは?

    セルA1に入った数値を、 たとえば12ならば0年12ヶ月 13なら1年1ヶ月 24なら1年12ヶ月 25なら2年1ヶ月 36なら2年12ヶ月 というふうに別のセルに表示(年と月をそれぞれ別に)したいのですが、各セルはどういう計算になるでしょうか?

  • エクセルでの関数

    エクセルで 月数をいれると何年と表示される計算式がほしいです。 A B C 13 2 7 1 25 3 A列に 月数 13ヶ月 7ヶ月 25ヶ月と 入力して B列に 年数 2年目  1年目 3年目 と入るような計算式はないですか? DAITEDIFだと いつからいつまでの日数の計算なので;

  • Excelで在職年月数が表示されるように設定したい

    Excelで質問です。 ある日付から年数と月数を出したいのですがうまくいきません。 例えば、セルA1に入社した日付(例えば2000年4月)があり、B1に○年○ヶ月(例えば7年1ヶ月)と在職年月数が表示されるように設定したいのですが、うまくいきません。 DATEDIF関数を使ったら年数は表示されても月数は出ません。 何か良い方法はあるのでしょうか?

  • ■エクセルで期間計算の時、0ヶ月を表示させない関数

    みなさん初めまして。 これが初めての投稿です。どうぞよろしくお願いいたします。 現在、幼稚園の卒園式に子供に渡す卒業証書を作成しております。 子供たちの入園期日からの在園期間を求める関数はこちら http://oshiete1.goo.ne.jp/kotaeru.php3?q=1722152 を参考にさせていただき、完璧にできました。ありがとうございます。 このデータをもとにワードで作成した卒業証書に・・・ 「あなたは何年何か月間、げんきに・・・」と差し込みさせるのですが、ここで問題?発生。 エクセルデータはたとえば5年0か月となり、差し込み結果もその通りに表示されてしまいます。 ■これを5年丁度なら5年だけを表示させるための関数追加は可能なものでしょうか? ■また、証書が縦書きなので、漢数字へ表示させることも可能でしょうか? (例5年11ヶ月の場合、五年十一ヶ月と表示させる) 現在の期間計算の関数は次のとおりです。 =TEXT(INT((DATEDIF(DATE(YEAR(A1),MONTH(A1),1),DATE(YEAR(B1),MONTH(B1),1),"m")+1)/12),"#0"))&"年 "&JIS(TEXT(MOD((DATEDIF(DATE(YEAR(A1),MONTH(A1),1),DATE(YEAR(B1),MONTH(B1),1),"m")+1),12),"#0")&"ヶ月" あと数週間後に卒園式が迫り少しばかり焦っております。 どうかよろしくお願いいたします。 ちなみに・・昨年までは、一人ずつ期間は手書きで証書へ直接書いておりました・・(汗

  • IF関数

    職員名簿を作成していますが、各個人の名前を検索するとA1のセルに勤続年数が○年○ヵ月と表 示されますが、19年1ヵ月以上の年数が表示がされた場合は空欄にし、19年0ヵ月以下の年数が表示がされた場合はその通りに表示する関数式を教えてください。 IF関数でいろいろと試したのですができません。 詳しく教えてください。 現在A1セルには次の関数を入れています。 =IF(F9="","",INT((DATEDIF(F9,I1,"M")+1)/12)&"年"&MOD((DATEDIF(F9,I1,"M")+1),12)&"ヵ月")

専門家に質問してみよう