4-2.エクセルで小数点以下の桁数を希望通りに合わせる方法(’25.8.19)
《経緯》
私は見積書や請求書の作成にエクセルを使っています。受注した業務が請負契約ではなく常用のとき、以前からちょっと煩わしいと感じていたのが人工数の桁表示です。題名を見ただけでは理解できず、頭に ”???”が浮かぶかもしれませんので、ちょっと説明します。
1日の作業時間が6~7時間のときは作業規定時間を満たしていませんが、『1人工でいいよ』としていただける希な取引先もあります。そのようなところばかりではありませんが、見積書や請求書に記載する人工数は取引先によっては以下の表の通り、『0.25』(2時間未満程度の作業)~『1.0』(1日作業)の4つに区分することがあります。
作業基準 | 人工数 | 小数点以下の桁数 |
1日(約8時間) | 1.0 | 1 |
半日とちょっと | 0.75 | 2 |
半日(未満)程度 | 0.5 | 1 |
2時間未満程度 | 0.25 | 2 |
”1人工”は小数点を付けて『1.0』で表示しますので、表示させたい4つの数値は小数点以下の桁数が1か2どちらかの2種類となります。今までは、セルの書式設定の表示形式タブから分類で数値を選択して、小数点以下の桁数を”1”と設定していました(分類が『標準』のままでは小数点以下を表示しません)。この場合、半日とちょっとの作業である『0.75』は数値を入力して確定(Enter)すると『0.8』、2時間未満程度の作業の『0.25』は確定すると『0.3』と共に四捨五入されて表示されてしまいます。

小数点以下の桁数を”1”で設定
小数点以下の桁数1である1人工と0.5人工の表示は希望通り『1.0』、『0.5』と表示されます。

しかし、小数点以下の桁数が2である『0.75』(または『0.25』)を入力して…

Enterキーを押して確定すると、当然のことながら、小数点以下1の位までしか表示されません。しかも、小数点以下2位が四捨五入されていますので、『0.8』(または『0.3』)と入力した通りの表示になりません。
逆に、セルの書式設定の小数点以下の桁数を”2”に設定すると、『0.75』と『0.25』は入力された数値がそのまま素直に表示されますが、1日作業である『1.0』は『1.00』、半日程度の作業の『0.5』は『0.50』と表示されてしまいます。

小数点以下の桁数を”2”で設定
小数点以下の桁数2である0.75人工と0.25人工の表示は入力した通りに表示されます。

しかし、今度は小数点以下の桁数が1である『0.5』(または『1』)を入力してEnterキーを押してみると…

小数点以下の桁数を1で表示したいのですが、『0.50』(または『1.00』)と表示されてしまいます(小数点以下の桁数を2と設定しているので、当然と言えば当然なんですけどね)。
間違いではないのですが、小数点以下2の位が”0”となるときは非表示にしたいところです。
小数点以下の桁数を”1”と”2”のどちらに設定しても不具合が発生してしまいます。いずれにしても修正しなければならないのであれば、どちらに設定しておいた方が修正の手間を少なくすることができるのか?ということになります。結果は、小数点以下の桁数を増やすのか減らすのかという操作だけですので、どちらに設定していても修正する作業量としては変わりはありません。

小数点以下の桁数の修正は、ホームタブの数値グループにある『小数点以下の表示桁数を減らす(増やす)』アイコンで簡単に桁数表示を変更できます。
いずれの場合も修正は必要となりますが、修正する作業量は同じです。
これまでは、どちらかに表示桁数を決めておいて後で修正という作業を続けていましたが、今の時代にこれ以上の設定ができないわけがないということはわかっており、いちいち修正などしなくで済むはずです。単に調べるのが面倒なだけで、これまで先送りしていたというのが本音です。しかし、請求書の作成は毎月の作業のため、あまりの煩わしさにとうとう時間を割いて調べてみることにしました。

小数点以下2位が”0”の場合は非表示とし、”5”が入力されたときには表示したい。
検索結果
調べてみたところ、なんとも簡単な設定で解決しました(あまりの簡単さに拍子抜けです)。数値が”0”のときに何も表示させないためには、ユーザー定義の”#”を使用すれば可能であることが分かりました(エクセルに精通している方は既にご承知のことと思います)。この”#”は数値の1桁を意味し、ゼロのときは何も表示しないようにすることができるようです。
以下のサイトを参考にさせていただきました
エクセルのユーザー定義ってどう使う?読み方をわかりやすく解説 – まいにちdoda – はたらくヒントをお届け

セルの書式設定から、表示形式タブの左側の分類で一番下にあるユーザー定義を選択すると、右側の種類に定義の一覧が表以されます。
一覧の上の方に”#”を使用する表示形式がいくつか並んでいます。今まではあまり気にしないように素通りしていましたが、それぞれに意味があります。詳しくは上記参考サイトで。
今回は、既述した吹き出し欄の通り、『小数点以下2位が”0”の場合は非表示とし、”5”が入力されたときには表示したい』ということなので、小数点以下1桁は必ず表示させ、2桁目が”0”のときは非表示にして、”0”以外であれば表示させるようにします。

小数点以下2位の表示を”0”のときは非表示、”0”以外の入力があったときは表示したいので、種類の欄に『0.0#』と入力します。これで『OK』をクリックするだけで設定完了です。

今回設定した表示形式は一覧の最下段に追加されますので、以後、他のシートやファイルに同様の設定をするときは選択してクリックするだけです。
設定後の検証
設定が完了しましたので、実際に入力してみます。小数点以下2桁表示の『0.25』と『0.75』は数値入力後に確定しても、入力したままの数値が表示されます。また、小数点以下1桁表示の『0.5』と『1.0』はどちらも小数点以下2桁表示されることはなく、1桁表示となっています(1と入力しても『1.0』表示されます)。書式設定後は、入力した数値がそのまま表示されるようになりましたので毎回修正する手間が省けました。
今まで、ユーザー定義に関してはその場しのぎで対応してきた感が否めません。おまじないのような記号が羅列されている一覧は、何を意味するのか少し気にはなっていたものの、ほとんど無視し続けてきたため、逆に無駄な時間を費やしてきたようにも思えてちょっと後悔しています😞 もっと早い時期からこれらの定義について理解していれば、ここまで煩わしい思いをしなくて済んだはずです。エクセルを頻繁に使用する方には、このユーザー定義の記号を理解しておくことをおすすめします。格段にエクセルの活用幅が広がるはずです。無駄になることはないでしょう。