- ベストアンサー
Excelで月またぎ日数差を求める計算式とは?
- 納期管理の仕事をしている方へのアドバイスです。Excelの表で注文書の納期と実際の納期の差を管理しているが手入力が多いため、計算式を導入して誤入力を防ぎたいと考えています。
- 納期は年次または月をまたいで変更することもあるため、うるう年などの考慮も必要です。Excel表の年次・月・日のセルを使い、ドロップダウンリストで選択できるようにしています。
- もし簡単な方法があれば教えてください。また、タイトルと要約文はSEOを意識して作成しました。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
つまり、添付図のようなお話でしょうか。 まず、予定納期・実納品日をDATE関数で「日付」にしてやります。 予定納期の年月日がABC列に入っているとして、D列に =DATE(A3,B3,C3) 同様に、実納品日の年月日がEFG列に入っているとして、H列に =DATE(E3,F3,G3) と置いてやり、あとは単純に「引き算」です。 I列に =H3-D3 と書いてやれば、計算してくれます。 途中の「日付に直した列」を置けない・置きたくないのであれば、これらをまとめて =DATE(E3,F3,G3)-DATE(A3,B3,C3) でも可能です。 年月日が空白(選択されていない)状態だとエラーが返りますので、 鬱陶しければ =IF(A3="","",DATE(A3,B3,C3)) としてやると、A列が空白なら空白、空白じゃなかったら日付を返します。 純粋に日付で計算しますから、当然ながら閏年も勝手に考慮してくれます。 問題はあり得ない日付を選択した場合です。 例えばリストから選択した結果が「2012/11/31」だったりすると、 「2012/12/1」を返してきますので、入力の際は注意が必要です。
その他の回答 (3)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
年次、月、日をDATEVALUEで「日付」データに変換すれば、日付同士は、加減算できるので経過日数は計算可能。(「日付」データは1日が1で表される数値データ、別にある基準日からの相対日数) こんな感じ、、、 年次、月、日がA~C列、 その日付データをD列、 =DATEVALUE(A2&"/"&B2&"/"&C2) E列にD列2つの日付の経過日数、 =D3-D2-1
- bon459
- ベストアンサー率36% (4/11)
No.1さんが書かれているとおり日付の差分は日付形式のセル同士であれば単純に差を取ることで分かります。 ご質問では年・月・日が別々に入力されているようですので、こんな方法は如何ですか? 1行目をタイトルとして2行目以降に実際の納期が並んでいるとして、 注文書の納期の年・月・日がそれぞれA・C・E列、 実際の納期の年・月・日がそれぞれH・J・L列に入力されている日付の差を出すような場合ですと =DATEDIF(DATE($A2,$C2,$E2),DATE($H2,$J2,$L2),"D") という式を各行のどこかの列に入力すると求められます
- okormazd
- ベストアンサー率50% (1224/2412)
単に引き算だけでできる。 結果のセルの書式を「標準」にしておけばいい。 =DateDIf((初めの日付),(終りの日付),"D") でもできるが、こんなの使わなくてもいい。