- 締切済み
2つの日付間の差分を計算する。
スラッシュで表示された日付間の差は計算できるが、下記日付の場合はどのようにしたら計算できるのでしょうか。 2016/11/01~2016/11/15 計算できました。 20161101~20161115の表示の日付の差分はどのようにしたらよいのでしょうか。 データはエクセル2013で作成し5000件あります。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルの質問は、セル単位で、シートのデータが、どうなっているかはっきり書け。 エクセルの本質を、はっきりわかってないとおもわれちゃう。。 (1)20161101~20161115と(文字列で入っているのか。~が入ると文字列になる) 20161101~20161101 (2)2セルにそれぞれ、 20161101 20161115 と入力されているのか ーー どちらも日付シリアル値に直すべきだろう。 (1)は2セルに分けて日付シリアル値に、(2)は各セルに文字列数字から日付シリアル値へ変換する。 ーー 日付シリアル値というのを知っているか。これを知らなさそうな質問者が多いようだ。 Googleででも照会して勉強すること。 日付シリアル値にするのは (A)エクセル関数を利用するため 演算=引き算やDateDiff関数利用 (B)日付を、見てくれで、日付の 表示形式にするため これらは、セル野値が日付シリアル値でないと使えない。 ーー 関数でやるとすると A1セルに対し =DATE((MID(A1,1,4)),MID(A1,5,2),MID(A1,7,2)) B1セルに対し =DATE((MID(B1,1,4)),MID(B1,5,2),MID(B1,7,2)) 表示形式を日付の西暦年月日に設定するとD1,E1セルに 2016年11月1日 2016年11月15日 =E1-D1の式で14 参考 https://azby.fmworld.net/usage/excel-function/005/ DateDifを使うと、年、月、日の組み合わせで表せる =DATEDIF(D1,E1,"D") で14 参考 http://kokoro.kir.jp/excel/datedif.html ==== もう一つの 20161101~20161115について A2セルにあるとして 「から」の日付は =DATE(MID(A2,1,4),MID(A2,5,2),MID(A2,7,2)) 「まで」の日付は =DATE(MID(A2,11,4),MID(A2,15,2),MID(A2,17,2)) ーーー これ以外にも、データー区切り位置で書式を日付指定などの方法もある。 時々出る質問で、質問や解法に新味はない。 == 「差分」の表現は、は大げさではないか。 (期間)日数とかでよいのでは。
- tsubu-yuki
- ベストアンサー率46% (179/386)
西暦かつ8ケタで入っているのなら、 =VALUE(TEXT(A1,"0-00-00")) で、表示形式を日付にしてやると変換できます。 差日数を計算するなら、 =TEXT(B1,"0-00-00")-TEXT(A1,"0-00-00") で返ります。 仮に、西暦かつ6ケタ(ex)170101)とかいうイレギュラーが混ざるなら、 MIDやLEFT・RIGHTではうまくいかないかもしれません。 ただし、 > 20161101~20161115の表示の日付 これが「20161101~20161115」と1つのセルに入っているなら話は別。 MID関数を駆使する必要があります。 =DATE(MID(A1,10,4),MID(A1,14,2),MID(A1,16,2))-DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2)) ここに起算日も日数に含むなら、+1してやればOK。 ただしこれも同様に西暦で6ケタとか和暦とかが入ると狂います。
- mdmp2
- ベストアンサー率55% (438/787)
=DATE(LEFT(B1,2),MID(B1,3,2),RIGHT(B1,2))-DATE(LEFT(A1,2),MID(A1,3,2),RIGHT(A1,2))
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは 20161101~20161115 の 20161101 と 20161115 は別々の列に入っているのですか? それぞれの列を選択して、区切り位置のウィザードの3/3で列のデータ形式を 日付にして完了すればスラッシュで表示された日付に変換されます。 変換せずに数式だけで算出するなら、A1、B1に日付が入っているとして =DATEDIF(DATEVALUE(LEFT(A1,4)&"/"&MID(A1,5,2)&"/"&RIGHT(A1,2)),DATEVALUE(LEFT(B1,4)&"/"&MID(B1,5,2)&"/"&RIGHT(B1,2)),"d") とかです。
- Chiquilin
- ベストアンサー率30% (94/306)
初日を起算するのかどうかはご自分で調整して下さい。 =IFERROR(TEXT(B1,"0-00-00")-TEXT(A1,"0-00-00"),"")