fc2ブログ

(元)社内SEの徒然なる日記

Excelで小数点以下がある時だけ表示する方法(点なし)

■ 数値の小数点以下の設定

前回(Excelで小数点以下がある時だけ表示する方法(点あり))は、小数点以下が存在する時だけ表示するが、小数点は常に表示されるという方法でした。

今回は、小数点以下に値が無い時には小数点も表示しないように設定してみます。

対象のセルを1つだけ選択して、リボンの「ホーム」ページから「条件付き書式」→「ルールの管理」を選択します。
Excelの少数対応(点無し)1

「新規ルール」を選択。
Excelの少数対応(点無し)2

「数式を使用して、書式設定するセルを決定」を選択し、「=IF(RIGHT(TEXT(B3,"0.#"),1)=".",TRUE,FALSE) 」と入力、「書式」を選択します。
Excelの少数対応(点無し)3

上の図にも書いてますが、B3の部分は選択中のセルにします。

「表示形式」を表示して、左側のリストから「数値」を選択。「小数点以下の桁数」を0、「桁区切り(,)を使用する」をオン、負数はマイナス記号で赤文字に設定して、「OK」を選択します。
Excelの少数対応(点無し)4

「OK」を選択します。
Excelの少数対応(点無し)5

再び「新規ルール」を選択します。
Excelの少数対応(点無し)6

「数式を使用して、書式設定するセルを決定」を選択し、「=IF(RIGHT(TEXT(B3,"0.#"),1)=".",FALSE,TRUE) ) 」と入力、「書式」を選択します。
Excelの少数対応(点無し)7

式の注意点はさっきと同じで、変わった箇所はTRUEとFALSEを入れ替えただけです。

「表示形式」を表示して、左側のリストから「ユーザー定義」を選択。種類に「#,##0.#;[赤]-#,##0.#」と入力します。
Excelの少数対応(点無し)8

ここで種類に入力するのは、前回(Excelで小数点以下がある時だけ表示する方法(点あり))と同じ書式です。なので、小数点以下の桁数が2ならば小数点以下にある#の数が2つ、3つなら3つとなります。

「OK」を選択。
Excelの少数対応(点無し)9

「OK」を選択。
Excelの少数対応(点無し)10

設定したセルをコピーして、他のセルに書式を貼付けします(下記の図は設定方法の一部)。
Excelの少数対応(点無し)11

■ 結果と解説

その結果、このように表示されるようになります。
Excelの少数対応(点無し)12

うん、意図した通りになりましたね。

では、少しだけ解説します。

今回は、Excelの条件付き書式の設定機能を使用して、小数点以下が存在する場合と、存在しない場合で別の書式を設定するようにしています。それを判定する式が「=IF(RIGHT(TEXT(B3,"0.#"),1)=".",TRUE,FALSE)」になります。

TEXT関数で数値を文字列に変換、第二引数の書式を「0.#」とすることで、小数点以下がある場合には「10.1」、無い場合には「10.」のようになります。そこからRIGHT関数で右側1文字を取得し、IF関数でそれが小数点(.)であるか判定し、小数点であればTRUEを、それ以外であればFALSEを返すようにします。

条件付き書式の設定条件は「指定した式の結果がTRUEになる場合に設定した書式を適用する」なので、この場合は小数点以下が存在しない場合にのみ指定した書式(普通の数値の書式設定)が設定されることになります。

後は、これを応用して少数点以下が存在する場合の書式を追加すれば良い訳です。

■ 後書き

小数点以下の有無の判定式を「書式整形付きの文字列変換&文字列から一部取得」としましたが、他にも判定方法はあると思います。こういう手段をとったのは、まぁ、私の趣味ですね。

最後の結果に不満があるとすれば、小数点以下がある場合と無い場合で数値の位置がずれることです。と言っても、そこまで拘るなら文字のフォントをMS ゴシックとかにした上で整数部と少数部を分離して別のセルに配置して〜 なんて事をしなければならず、それをすると縦計の計算に一工が必要だったりと手間が掛かってやってられません。

・・・そりゃ、やればできますけどね。

前回:Excelで小数点以下がある時だけ表示する方法(点あり)

投稿記事の一覧:http://harikofu.web.fc2.com/

--- blog end —

スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する
 

Excelについて

はじめまして!
Excelについて検索してたどり着きました。参考にさせて頂いてます。

この記事の内容を参考に小数点以下の表示方法を入力したのですが、小数点第1位が『0(ゼロ)』だと『0』が省かれて『○、0』が『○』となってしまいます。

合格率を求めるセルに条件付き書式で利用しているので、例えば合格率が100%なら『100』、割り切れない場合小数点第1位まで表示(○、0のゼロ表示)出来るようにするにはどのような数式を利用したら良いのでしょうか?

はじめましてなのに恐縮ですが、よろしければご教示ください。よろしくお願いいたします。

Excel初心者 | URL | 2021-02-21(Sun)00:05 [編集]


Re: Excelについて

コメントありがとうございます。

もしかして、計算結果が 25.00 の時は 25。25.01の時は25.0のように表示したいのでしょうか?
だとすると、申し訳ないですが力になれそうにありません。
単純に100の時だけ小数点以下を表示しないと言うのであれば簡単ですが・・・

まず、今は手元に環境がないので試せないのですが、やってやれないことは無いとは思います。
ただ、それは本当に必要なのか考えて欲しいです。難しい技法を駆使して実現すると、今度はそれを維持していかないとなりません。初心者と言うのであれば、後で困るのは貴方です。

私も似たような要望を受けたことがありますが、大抵の場合、依頼者の拘り以上の理由はありませんでした。
Excelをそこそこ使える人間でも難しいと思う内容ですので、別の方法で進めては如何でしょうか。

ハリコフ | URL | 2021-02-21(Sun)19:46 [編集]


お返事ありがとうございます。

ROUNDDOWN関数を利用し、試験の合格率を求めているセルがあります。
例えば受験者3人に対し、合格者○人となった時、合格者3人であれば合格率100%なので100、合格者2人であれば合格率66.66…なので66.6と表示出来ました。ある時気づいたのが、受験者61人に対し合格者36人、合格率59.01…で59と表示されていた事に気づきました。処理上、59.0と表示が必要なので条件付き書式の0.#の部分を0.0にしたら表示出来たのですが、100になった時に100.となってしまい、助けを求めたところです。

仕事で事務的な書類を全てExcelで手作りしていまして、事務員の間違えを防ぐために試行錯誤しながら作ってます。
事務員がPC不慣れな人ばかりなのと私が常時事務所に居ないこともあり、何も考えなくても式を利用して表示出来る方法がないかと…担当事務員はツールバーを利用した小数点表示方法の操作も微妙な感じなんです。
本人が単純な操作を頑張って覚えれば良い話なのですが、合格率の細かい部分のミスでいつも上司から怒られているのを見てるとかわいそうなところもあり

長くなりましたが、お話出来て嬉しかったです。身近にExcelについて相談できる人がいなかったので、少しスッキリしました!
ありがとうございます!

Excel初心者 | URL | 2021-02-21(Sun)21:14 [編集]