• ベストアンサー

0:00が表示されたら 日付が変わるようにしたい。

0:00が表示されたら 日付が変わるようにしたい。 黄色いセルは手入力し その他は自動表示。 月日は B 列が0:00の場合は日付が1日増えるようにしたい。 月をまたいだ場合も同様。 例:B7が0:00なので7/2に日付が変わる。 お手数ですがご教授ください。

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

  • ベストアンサー
  • kouji_124
  • ベストアンサー率46% (283/605)
回答No.1

表の中に日付をまたぐ部分が1箇所であれば簡単に出来ます。 画像の表を元にすると セル[A4]=IF(HOUR(B4)<>0,"〃",$A$3+1) セル[A5]=IF(HOUR(B5)<>0,"〃",$A$3+1) セル[A6]=IF(HOUR(B6)<>0,"〃",$A$3+1) 以降、HOUR(B*)の*の部分を1つづつ増やしてください。 しかし、日付をまたぐ部分が2箇所以上ある場合は厄介です。 1箇所の場合は日付を入力しているセルが分かっている為、そのセルの値に+1するだけで次の日が取得できますが、2箇所目以降は何回目の[0:00]なのか判断する必要が出てきてしまいます。 そこで、日付をまたぐ部分が2箇所以上ある場合はEXCELで取り扱われる日時のデータがシリアルデータである事を利用します。 具体的に書きますと、EXCELの日時データは実際は[1900/1/0 0:00:00]を[0]として整数部が日付、小数部が時間になります。 セルに日付を入力した場合、時間は[0:00:00]になり、時間を入力した場合日付は[1900/1/0]になります。 時間を入力したセル以降に入力された日付のデータも持たせてあげることで、[0:00]になった場合、そのセルの日付のデータを取得すれば良い事になります。 例 セル[D3]=A3+B3+TIME(1,0,0) セル[D4]=B4+TIME(1,0,0) セル[D5]=B5+TIME(1,0,0) セル[B4]=D3 セル[B5]=D4 セル[B6]=D5 セル[A4]=IF(HOUR(B4)<>0,"〃",B4) セル[A5]=IF(HOUR(B5)<>0,"〃",B5) セル[A6]=IF(HOUR(B6)<>0,"〃",B6)

その他の回答 (3)

  • CC_T
  • ベストアンサー率47% (1038/2202)
回答No.4

Aセルの手入力をやめ、B3セルを基準にして、他のA,B,D列のセルを自動入力する方法で回答します。 まず質問にある表で、 B3セルの入力を「2011/7/1 20:00」と日付付の時刻形式で入力し、 A3セルには「=B3」を、D3セルには「=B3+"1:00"」を入力します。 次に、 A4セルには「=if(left(b4,5)=left(b3,5),"〃",b3)]を B4セルには「=B3+"1:00"」を D4セルには「=B4+"1:00"」と入力し、 4行目をコピーして表の下まで貼り付けします。 更に、 A列のセルの書式設定で表示形式を「日付:3/14」を選択 B,D列のセルの書式設定では表示形式を「時刻:13:30」を選択します。 これでいかがでしょうか? 質問の表の雨量のように長期の測定データを扱う場合、あとになってグラフ化したい という要望が出ることが予想されますが、それに備えるためにも、日付時刻形式で 入力しておいた方が扱いやすいと思います。 ※Bセルを横軸に、Eセルを縦軸にとって分布図でグラフ形式表示し、横軸の書式を 「ユーザー設定:0/0 0:00」、目盛間隔を「3:00」などに設定すれば見目の良いグラフになるでしょう。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

>B7が0:00なので7/2に日付が変わる。 A4セルに =IF(B4=0,A3+1,A3) 下へコピー 少し発想を変えて 上の行の時刻より小さくなったら 日にちを1日分加算する ということで A4セルに =IF(B3>B4,A3+1,A3) 下へコピーしてみては

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

A3=40725 で表示形式が日付の3/14で 7/1 の表示なら A4=IF(B4="","",IF(B4>B3,"〃",MAX($A$3:$A3)+1)) ※表示形式はA3と同じにしてください。 でA4の式を下方にコピーしてください。