- ベストアンサー
日付計算(滞留)のついてのご質問(EXCEL)
いつもお世話になっております。 今回お伺いしたいのは 日付計算の方法についてです。 例)2010/06 この年月と設定年月 例)2013/07 この二つがあったとします。 この場合、3年と1ヶ月経過しておりますので、 3.01という結果が返されます。 3は年数 小数点以下は月(11が最大値) DBにある沢山の年月からこの結果を表示させるには どのような関数を用いればよろしいでしょうか。 お知恵のある方どうぞよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
A1に開始年月 B1に終了年月 C1に =DATEDIF(TEXT(A1,"yyyy/mm"),TEXT(B1,"yyyy/mm"),"y")+DATEDIF(TEXT(A1,"yyyy/mm"),TEXT(B1,"yyyy/mm"),"ym")*0.01 として、セルの書式設定で小数点以下2桁まで表示する設定にしておく。 #実際の「沢山の年月」が「文字列で2013/07と記入されている」のか「実は年/月/日で記入されているのを2013/07と表示だけしている」のか、事実はどっちなんでしょうね? 上述はどっちでも良いようにしてありますので別に補足してくれなくて構いませんが、寄せられた回答によってはどっちか限定のも当然あります。ご自分のデータを回答に応じてやり直してください。 ていうか、説明不足で回答者をミスリードしてます(余計な手間を掛けさせてます)よ、という意味ですが。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルとA2セルにデータが有るとして次のような式にすればよいでしょう。 =INT((A2-A1)/365.25)+ROUNDUP(MOD((A2-A1)/365.25,1)*12,0)/100
お礼
ありがとう御座います。 こちらの方法でも数値計算されることを確認致しました。 2010/08/01 2013/09/01 この二つのデータを当てはめると 3.02となりました。 当日の処理を+1にするのかどうかと言う判断の問題ですので 調整すると使用できると思いました。
- f272
- ベストアンサー率46% (8469/18132)
エクセルで日付を入力するときは「2010/06」ではなく,「2010/6/1」のように入力することになると思う。「2010/06」とキーインしてもエクセルが勝手に「2010/6/1」に変換するということです。そういう前提で A1=2010/6/1 A2=2013/7/1 のとき =DATEDIF(A1,A2,"y")+DATEDIF(A1,A2,"ym")*0.01 とすれば 3.01 ですね。
お礼
ありがとうございました。 試しに A1=2010/08/17 A1=2013/7/1 この二つのデータでやってみましたところ2.1で返ってきました。 期待していたのは2年と11ヶ月なので 2.11になれば正解なのですが。
お礼
確かにおっしゃるとおり。 日にちがあることで条件によっては結果が異なりますね。 対象はYYYY/MMで入力するとDDが自動で入力されていたため 紛らわしい問い合わせの四方になってしまいました。 今回、教えて頂いた方法で問題が解決致しました。 ありがとう御座いました。