
タイトルのとおり、負の時間になった場合に0:00と表示したいのですが、なかなかうまくいきません。
エクセルにて勤務の遅刻・早退の表を作っています。8:30までにこなかった場合に超過時間を表示し(9:00にきた場合には0:30)、17:00より前に帰った場合に過不足時間を表示、という表を作っています。
http://oshiete1.watch.impress.co.jp/qa4183597.html
この過去の質問を参考にやってみましたが・・・うまくいきません;
現在、A1にある元データの数字(例:815)を拾う為に、セルのA3に
=IF(A1="","",TEXT(A1,"0!:00"))
という数式が入れてあります。
A4のセルには
=IF(ISBLANK(A3),"",IF(A3>TIMEVALUE("8:30"),A3-"8:30",0))
という数式が入れてあります。
A4のセルに負の時間であれば0:00と表示、という関数を入れれば出来そうなのですが、試行錯誤してもわかりませんでした。
ご教示いただけたらと思い投稿しました。
宜しくお願いします。
No.3ベストアンサー
- 回答日時:
> =IF(A1="","",TEXT(A1,"0!:00"))
これは時刻じゃなくてただの文字列ですね。これを
> =IF(ISBLANK(A3),"",IF(A3>TIMEVALUE("8:30"),A3-"8:30",0))
この式に入れたら、「A3>TIMEVALUE("8:30")」は常に真です。文字
列は数値より大きいことになってますから。四則演算では勝手に型
を合わせるExcelも、比較演算子では型を意識する必要があります。
というわけでA3を
=if(A1="","",timevalue(text(A1,"0!:00")))
として比較する値同士の型を合わせて下さい。
>> =IF(A1="","",TEXT(A1,"0!:00"))
>これは時刻じゃなくてただの文字列ですね。これを
これだと時刻として扱われず、文字列を時刻のように表示している・・ということであってますでしょうか?
こちらの式でも出来ました!こんな短くてOKだったとは目から鱗です。ありがとうございます。今後は似た型を意識してみたいと思います。
No.7
- 回答日時:
解答No4です。
B3が空白のときにB4を空白にするのでしたらIF(ISBLANK(B3),"",のような式にするのは間違いです。B3セルには見かけ上空白になっていても数式が入っていますのでBLANK(空白)ではありません。IF(B3="","",のように使うことが必要です。
確認のために他のセルに=ISBLANK(B3)と入力してみましょう。答えはFALSEとなります。B3セルに式がある以上、空白としては認識されません。
この回答への補足
なるほど・・・BLANKは完全に空白の時に使うべきものだったんですね。勉強になります。
それと同時に修正を加えてみたところ、無事解決できました!
皆様ご丁寧にありがとうございました。
とてもたすかりました!
No.5
- 回答日時:
B4セルの表示形式を、 ユーザ定義 で h:mm;h:mm;
にしてみてください。
表示形式は、 正の場合; 負の場合; 零の場合
です。
この回答への補足
消えました!・・・しかし問題が;;
私の説明が足りませんでした。
遅刻・早退をしていない場合には0:00をつけています。
全部選んでユーザ定義を変えたところ、正しく0:00が表示されてる場所も消えてしまいました。
やはり1個1個選択してやるしかないのでしょうか?
No.4
- 回答日時:
簡単な式は次のようになりますね。
A4セルへの入力式は
=IF(A3="","",IF(A3*1>"8:30"*1,A3-"8:30",0))
1をかけることでA3が文字列としての時刻をシリアル値に変換します。TIMEVALUE関数を使うのと同じ意味になります。
A3ではText関数を使っていますのであくまでも文字列で表した、例えば8:15にすぎません。シリアル値に直して比較に使うことが必要です。
この回答への補足
すみません、質問は解決したのですが・・・また新たな問題が。
こちらに補足させていただきます。
タイトルのとおり退勤時間の計算もしてるのですが、B1には退勤時間(例1759)を入力してあり、同じようにB3、B4にも出勤と同じように数式が入れてあります。
参照したB1セルが空白だった場合に、B3のセルにはきちんと空白が表示されるのですが、B4に0:00が表示されてしまいます・・・。
B1が空白の場合は空白で表示したいのですが、セルの関数に関わらず値がなければ空白にする、といったようなことは出来るのでしょうか?
調べてみましたがISBLANKをうまく使えてないのか、わかりませんでした。
無知ですみません・・・おわかりになるかたはいらっしゃるでしょうか?
1をかけるとシリアル値になるというのは初めて聞きました・・・奥が深い
シリアル値に直さないといけない、ということですね。とても勉強になりました!
遅くなりましたが皆様丁寧にありがとうございました。おかげで解決いたしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで、時間の計算をした場合、マイナス表示を0:00にする方法を教えてください。
Excel(エクセル)
-
エクセルで、時間 0:00を表示する方法
Excel(エクセル)
-
エクセルで時刻の計算結果が-0:00となってしまう
Excel(エクセル)
-
-
4
エクセルで表示形式の時刻の「0:00」を表示しないようにするには?
Excel(エクセル)
-
5
エクセル マイナスなら0と表示したい。
Excel(エクセル)
-
6
エクセルの書式設定に時間(0:00)を使いたい
Excel(エクセル)
-
7
Excelで負の数を足さずに0以上の数字だけを足したい
Excel(エクセル)
-
8
残業時間を計算し且つ足りない分はマイナス表示したい
Excel(エクセル)
-
9
エクセルで時間の合計ができません
Visual Basic(VBA)
-
10
エクセル0:00と表示される原因
Excel(エクセル)
-
11
IF関数で、時間を条件にしたい場合の式について
Access(アクセス)
-
12
複数の休憩時間がある場合の休憩時間の算出方法
Excel(エクセル)
-
13
Excelにて勤務表の作成で早出・残業、所定労働時間の計算式を教えて下さい
Excel(エクセル)
-
14
エクセル条件付書式で指定の時間が過ぎていたらフォントの色を変える
Excel(エクセル)
-
15
[IF文] 「何時〜何時」で該当する時間を表示したい お疲れ様です。お知恵をお借りできればと思います
Excel(エクセル)
-
16
エクセルで時間の判定をしています。0時以上5時以下の場合は○と判定したいので、以下のイフ関数を試しま
Excel(エクセル)
-
17
Excelで、時間の引き算でマイナス表示したものを計算に使うには
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
【画像あり】オートフィルター...
-
空白セル内の数式を残したまま...
-
Excel:関数が入っているセルに...
-
Excelで、入力文字の後に自動で...
-
エクセルで入力すると隣のセル...
-
Excel > ピボットテーブル「(空...
-
エクセル 連番が途切れていると...
-
「データ要素を線で結ぶ」がチ...
-
数式による空白を無視して最終...
-
【関数】=EXACT(a1,b1) a1とb1...
-
数式の結果が空白の時の空白扱い
-
【Excel】 csvの作成時、空白セ...
-
形式貼り付けの「空白を無視す...
-
excel2010 空白セルにのみ貼り...
-
エクセルでセルが空白だったら...
-
エクセルで空白文字の前後を入...
-
エクセルで数式の入ったセルの...
-
【Excel】 Ctrl+方向キー で空...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【画像あり】オートフィルター...
-
IF関数で空欄("")の時、Null...
-
エクセルでCSVを編集するとき、...
-
Excel > ピボットテーブル「(空...
-
エクセル 連番が途切れていると...
-
「データ要素を線で結ぶ」がチ...
-
エクセルで入力すると隣のセル...
-
ピボットテーブルで空白セルの...
-
Excel:関数が入っているセルに...
-
Excelで、入力文字の後に自動で...
-
形式貼り付けの「空白を無視す...
-
数式による空白を無視して最終...
-
空白セル内の数式を残したまま...
-
excel2010 空白セルにのみ貼り...
-
関数TRANSPOSEで空白セルを0に...
-
【Excel】 csvの作成時、空白セ...
-
エクセルのIF関数で、隣のセル...
-
エクセル セルのコピー元が空...
-
エクセルで、「複数のセルの中...
-
エクセルで上の行の値を自動的...
おすすめ情報