プロが教えるわが家の防犯対策術!

詳しい方教えてください。
従業員の出勤簿をエクセルで作っています。残業時間がない時(0:00)を非表示にしたいです。セルの書式設定のユーザー定義で[h]:mmにセミコロンを2つ付けてみたのですが、非表示になるところとならないところがまだらにあります。
残業時間を求める数式はどれも+で下までやったので違いはありません。表示されているセルのユーザー定義のサンプルを見てもセミコロンを付けていても表示されています。
他に何か問題があるのでしょうか?説明がわかりづらくてすみませんが、よろしくお願いします。

A 回答 (5件)

こんにちは!



どのような計算式が入っているのかが不明ですが、
時間計算の場合「浮動小数点誤差」の影響が出る場合があります。

それを回避するには小数点以下6桁程度に丸めると解決することがあります。
=ROUND("計算式",6)
といった感じで・・・

>セルの書式設定のユーザー定義で[h]:mmにセミコロンを2つ付けてみたのですが・・・

自分であれば、表示形式で操作するのではなく
ファイル → オプション → 詳細設定 → 「次のシートで作業するときの・・・」 → 「ゼロ値のセルのゼロを表示する」のチェックを外す。
といったやり方にします、

※ ただし、この場合は「0」を表示しなければならないセルの「0」も表示されなくなりますが。m(_ _)m
    • good
    • 0

ああ。

あと、確かに「秒」を含むこともありますね。0.25秒とか。
「微小誤差」と呼ばれるものです。

これを回避するには演算の元の時間を ”一度文字列に変換してから計算をする” と良いでしょう。
これなら日付の問題も回避できます。
A1セルに時間が入るなら、
 =TEXT(A1,"[h]:mm")
こんな感じです。
そして数値に戻すことなくこのまま計算できます。

※ Excelは数値(シリアル値)と見なせる文字は数値として扱うという ”おせっかい” 機能が常に働いています。
 文字列で "25:30" と入力しても、シリアル値「1.0625」という数値として認識されて計算に使われるということです。
    • good
    • 0

自分も日付を含む「シリアル値」になっていることが原因だろうと思います。


試しに「ユーザー定義」を「標準」に変えたとき非表示のセルの値が「ゼロ」になっているかを確認しましょう。

ゼロになっていない場合、そのセルの値は日付を含んでいると判断できます。


・・・余談・・・

セルの表示形式は
 プラスの値;マイナスの値;ゼロ値;文字列
のようにして定義します。
 [h]mm;;
セミコロンが2つということは、マイナス値とゼロ値を指定しない(表示しない)と定義しているということです。
そして3つ目のセミコロンがないので文字列の書式は設定されず標準形式で表示されることになります。
(3つ目のセミコロンを付けて何も提議しないと文字列も表示されません)
    • good
    • 0

こんにちは



実際のセルの内容がわからないので、あてずっぽでの回答ですが・・・

h:mmという表示書式で、見た目は 0:00 と表示されいても、秒の単位あるいは日や月の桁に値が存在すると、セルの値は0ではないので 0:00 と表示されるものと推測されます。
    • good
    • 0

微妙な端数が有ったのではないでしょうか?


非表示にならなかったところをコピーして、どこか表示形式が標準になっいてる適当なところに値貼り付けしてみて「0」になっているか?確認されてみてはいかがでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!