• ベストアンサー

★至急 Excelで時間計算(1日繰り上げる方法) 2回目です。

検索してみたのですが、HITしなかったので教えてください。前回ご回答してくださった方々ありがとうございます。 仕様の変更があり、皆様再度お力をお貸し下さい。 外部からデータをD/Lし、A列に下記のようにずっと日付と時間があります。 2004/3/1 0:00 2004/3/1 0:01 2004/3/1 0:02 0:00~7:00までは仕様のため前日の日付になっているので、これを+1して翌日の日付に訂正していきたいのです。 ■前回からここが変更になりました⇒(7:01~23:59は日付の変更なし)            日付が変わっても上手く動くようにする方法はありますか? また、計算でセルを分けず、B列のみで行う方法をお願いします。 非常に急いでおり、大変申し訳ないですがアドバイスをよろしくお願いいたします。

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

  • ベストアンサー
  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.5

No.3/4です。 なんどもすんません。 ひょっとしてB列の表示にも日付だけではなく時刻も 入ってほしいのでしょうか。 ならば、式的にはもっと簡単で =IF(A1-INT(A1)<0.292361111,A1+1,A1) で、いけるような気がします。 こんどこそうまくできますように。

enotama
質問者

補足

謝らなければならないのはこちらの方です。 分かりづらい説明で何度も申し訳ありませんでした。 結果、うまくいきました。本当にありがとうございます。 時間関数ばかりが頭にありました。 ちなみにここでなぜINT関数が用いられるのでしょう? (今回は時間で負の数が発生しないため大丈夫です) (日付の整数部分を引き)時刻のみを取り出し、それを7:01と比較して+1にする・・・式からはそれだけしか分かりませんでした。

その他の回答 (8)

回答No.9

#2 >セルを分ければ+1する時間がいつでもいいようにするのが容易なんですか? ---勿論です

回答No.8

=A1+(MOD(A1,1)<"07:00"*1) mshr1962さんの例は、text関数の書式がhh:mmなのに"7:01"と比較し ているから失敗するんです。アレは"07:01"と比較するべきでした。

enotama
質問者

お礼

ご回答ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.7

=IF(A1<=DATE(YEAR(A1),MONTH(A1),DAY(A1))+TIMEVALUE("07:00:00"),A1+1,A1)

enotama
質問者

お礼

ご回答ありがとうございました。 TIMEVALUEは参考になりました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.6

これでは如何? =IF(TEXT(A1,"hh:mm")<"7:01",A1+1,A1) No.3/4の方の方法で INT(A1)は日付時刻形式から日付のみ抽出する方法です。 1日が24時間なので1時間は1/24となり少数点でのシリアル値になります。 別の方法としては =MOD(A1,1) でも時刻の抽出は可能です。(表示上は1900/1/0 時刻)になりますが...

enotama
質問者

お礼

ご回答ありがとうございました。 やってみたところ、7:01以降も+1されてしまい、目的の結果を得ることが出来ませんでした。 INT関数の解説もありがとうございました。

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.4

No.3です。 A列の書式が日付なら =IF(A1-INT(A1)<0.292361111,INT(A1)+1,INT(A1)) でいいかも。 B列の書式も日付にして下さいね。 ※No3.の回答は「文字列」のときを想定してました。 うまくいきますように。

enotama
質問者

お礼

ご回答ありがとうございます。 自分でもあれこれやっていますので、取り急ぎ教えて頂いた結果をご報告します。 2005/4/1 0:00 2005/4/2 0:00 2005/4/1 0:01 2005/4/2 0:00 2005/4/1 0:02 2005/4/2 0:00 2005/4/1 0:03 2005/4/2 0:00 日付の変更は7:00まで+1され希望通りですが、上記のように時間の表示が上手くいきませんでした。

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.3

私も列を分けるのが賢明だとは思いますが、むりっくりやると、 =IF(VALUE(MID(A1,LEN(A1)-4,5))<0.292361111,VALUE(LEFT(A1,LEN(A1)-5)+1),VALUE(LEFT(A1,LEN(A1)-5))) こんな感じですか。 うまくできますように......

enotama
質問者

お礼

ご回答ありがとうございます。 私のやり方が悪いのだと思いますが、時刻の表示が変わってしまいます。 また、日付も+1されません。 A列        B列 2005/4/1 0:00 #VALUE! 2005/4/1 0:01 2005/4/1 0:01 2005/4/1 0:02 2005/4/1 0:01

回答No.2

=IF(HOUR(A1)>7,A1,A1+1) +1する時刻がいつでもいいように セルを分けたほうが管理しやすいですよ

enotama
質問者

お礼

ご回答ありがとうございます。 上記の式だと、7:00は日付が変わりません。 7:01から日付を変更させるには、1つのセルだと難しいのでしょうか? ちなみに時刻は0:00~7:00に限りません。 表示形式は 分類【日付】 【2001/3/14 13:30】 です。 >+1する時刻がいつでもいいように セルを分けたほうが管理しやすいですよ セルを分ければ+1する時間がいつでもいいようにするのが容易なんですか? 興味があります。

回答No.1

単純に、 A列に入っている時刻が0:00~7:00の間なら A列の日付に+1 するだけでいいんじゃないでしょうか それとも、 >計算でセルを分けず、B列のみで行う方法をお願いします。 この制限があるから、難しいてってこと? A列の書式設定がどのようになっているのかがわからないのでこの程度の回答しか出来ませんが。 どのようになっているのですか? >計算でセルを分けず、B列のみで行う方法をお願いします。 --- なぜ? この手の処理は、セルを分ける(最低でも日付と時刻)方が処理がしやすいんですけどね。 急いでいるようなので、妥協するほうがいいかもですよ。

関連するQ&A

  • ★至急 時間の計算について(1日繰り上げる方法)

    検索してみたのですが、HITしなかったので教えてください。 外部からデータをD/Lし、A列に下記のようにずっと日付と時間があります。 2004/3/1 0:00 2004/3/1 0:01 2004/3/1 0:02 0:00~7:00までは仕様のため前日の日付になっているので、これを+1して翌日の日付に訂正していきたいのです。 (7:00~23:59は日付の変更なし) 日付が変わっても上手く動くようにする方法はありますか? 0:00のシリアル数値(38459)と7:00(38459.2916)で簡単に足し算をしましたが、やり方が悪いのか日付が変わると機能しませんでした。 非常に急いでおり、大変申し訳ないですがアドバイスをよろしくお願いいたします。

  • Excelの時間の計算

    時間の計算の算出方法について質問です。 セルE16に 2015/11/25  17:59 という日付けと時間が入力されています。 セルH16に同じような形式で日付けと時間が入力された場合 セルK16に経過時間を表示する方法を教えて下さい。 ちなみにK16の経過時間は30分以上いくことは絶対にないので 分表示のみで大丈夫です(○○min と表示したい) またE16、H16ともに、マクロにて、セルの所でダブルクリックすると日付けと時間が 入るようになっています。 理想としてはH16の所でダブルクリックしたときにH16に日付けと時間が入力され K16に経過時間を表示という形にしたいです。 このような計算をした箇所が20行あります。 列は変わりません。 16から35行まで。 ご指導の程、宜しくお願いします。

  • エクセルでの計算について

    今、エクセルで確認表となるのを作成しているのですが、まだ勉強不足でして1つ教えていただきたいのですが、 セルAの列には日付(確認日)を入れています。 (月を入力すれば、その月のカレンダー通りに自動で変更されるように式をいれて作成しました) セルBの列には確認する項目においてあり・なしを手書きで書けるようにそれぞれマスを作っています。(最終的に月ごとに印刷して表にするので) ここで質問なのですが、セルA列の日付けに対してセルB列にも一日前の日付けを付ける場合、自動で入力(月ごとに反映)されるようにするには(A列みたいに月を変えればその月に反映される)どういう風に式を入れたらよいのでしょうか? よろしくお願いします。

  • エクセルでの計算について

    今、エクセルで確認表となるのを作成しているのですが、まだ勉強不足でして1つ教えていただきたいのですが、 セルAの列には日付(確認日)を入れています。 (月を入力すれば、その月のカレンダー通りに自動で変更されるように式をいれて作成しました) セルBの列には確認する項目においてあり・なしを手書きで書けるようにそれぞれマスを作っています。(最終的に月ごとに印刷して表にするので) ここで質問なのですが、セルA列の日付けに対してセルB列にも一日前の日付けを付ける場合、自動で入力(月ごとに反映)されるようにするには(A列みたいに月を変えればその月に反映される)どういう風に式を入れたらよいのでしょうか? よろしくお願いします。

  • エクセル関数で指定日の翌日を求める計算式を教えて下さい!!!

    こんにちは。 タイトルの通りです。 エクセルの関数で指定日の翌日を求める計算式を探しています。 指定日も毎回変更になるのですが、その指定日を入力すると、 ある別のセルに、その指定日の翌日の日付が入る。 というようにしたいのです。 前回は急いでいたので「A1+1」でやっていましたが、 (指定日が入力されているセルをA1とします) うまく対応出来ないケースもありますし、 もっと良い方法があるのでは?と思い探しています。 どなたか詳しい方、アドバイスください。 よろしくお願いいたします。

  • 同一セルに日時があるものを日付と時間に分ける方法

    ひとつのセルに日付と時間が混在している下記の様なセルがあったとして 加工しやすいように日付と時間に列を分けたいのですがどのようにすれば よいでしょうか。 変更前例:8/8/2011 14:00(A2のセルに日にちと時間が混在) 変更後例:8/8/2011(B2のセル)、14:00(C2のセル) A列が入力されていてそのデータをB列、C列にわけたいです。 宜しくお願い致します。

  • エクセルでの日付の計算方法

    A列、B列に以下のデータが入っています。 契約日■■■申込日■ 20020402■20020207 20020403■20020207 20020404■20020207 20020405■20020207 20020412■20020207 20020421■20001202 20020419■20020106 20020511■19990315 20020423■20020411 このデータ、実は日付なのですが、申込日から契約日までの日数を 計算したいのです。(A2-B2の計算を日付でしたいという意味です) ちなみにセルの書式設定で日付を指定すると、################と 表示されてしまいます。 どなたか方法をご教授ください。

  • エクセルで時間の計算方法を教えてください

    給与ソフトからエクセルにおとしましした エクセルの Sheet1には8月分 Sheet2には7月分 Sheet3にSheet1とSheet2の合計をだしたいのです 下記のように表示され計算できません どのようにすればいいのか教えてください 例えば 給与ソフトには64:00と明記されています それをエクセルにコピーすると 6400となりました 6400をセルの設定の時間に変更すると16:00:00となってしまったので 横の列に手入力で64:00とかえました すると 64:00:00 上部の数式を計算する部分には 1900/1/2 16:00:00 と表示されています (「:」の記号はキーボードの「け」の部分を使用) A列に個人コード B列に氏名 C列に出勤日数 D列に出勤時間 E列に手入力で出勤時間の打ち直し分 このような感じです 給与ソフトに戻すとエラー表示されます 64:00のみだで秒数を表さなければ大丈夫との事なんですが・・・ 64:00のみの表示をする方法 6400を簡単に64:00にする方法はありますか? また こういう行程ですれば早いという方法があれば教えてください

  • エクセルで、「’」を一括で削除する方法ってありますか?

    助けてください! エクセルで、A列の数字すべてに「’」が入っています。 ’19990708 ’20001223 この「’」を一括で削除し、 19990708 20001223 に変更することは出来ますか? (行は3万行くらいあり、手処理で「’」を削除するのは無理なんです) または、A列は日付列なのですが、’19990708を1999/07/08と日付に認識させる関数などはありますか? left関数、mid関数、&と"/"など試してみましたが、「’」が取れませんでした。 (1999/07/08とした後、セルの書式設定→分類→日付→種類で7月8日や7/8と表示を変更させたいのです。) どんな方法でもいいので、どなたか解決方法を教えてください。 よろしくお願いいたします。

  • エクセル、計算式で日付が41330となるのを西暦に

    エクセル2010です。 画像のようなデータがあったとして、 たとえば、「2月のUFJの金額の合計をする」といった計算式を、別のセルに記入したいと思っています。 そこで作業列を作り、ワイルドカードを使った文字列をヒットさせるようにしました。 画像のE列に「=A○&B○」という式の作業列を作り、結果を記載したい目的のセルには、 =SUMIF(E16:E27,"2013年2月*UFJ",D16:D27) としてみました。 しかし、ヒットさせたい"2013年2月"の部分が、標準形式の41330のような表示になってしまい、ヒットしません。 SUMIF式のほうを標準形式にしてみようと思いましたが、どの桁が何月と決まっているわけではないので、ワイルドカードを使って指定できません。 こういう場合、E列を「2013年2月25日UFJ」のように表示させるのは、どうすればよいのでしょうか? アドバイスをいただけると幸いです。よろしくお願いします。 ------------------------------------ ちなみに、SUMIFS関数やSUMPRODUCT関数で実現はできたのですが、データが多くなってくると処理がとても重くなってきます。 またピボットテーブルも考えたのですが、この結果を各種条件で表示させるセルをまず設定してから、そのセルを別の様々な計算式が参照するような連動をするかたちになるので、ユーザーの手で条件を変更するピボットテーブルでは対応できないのでは、とのことから、この方法を試しているところです。

専門家に質問してみよう