[PC小ネタ]Excelとかのスプレッドシートで%を計算するときは自分で100倍しない

書式設定で%表記使ってねって話です。あと、小数点以下の桁数表記も書式設定でしてください。スプレッドシートは表を作る為にあるのではなく、入力されたデータを計算するためのものだからですよという話です。


パーセント(%)は自分で×100(*100)しない

割合を、パーセント表記したいときというのがあるかと思います。

図01 割合を計算しようと思います

ちなみに図01のデータは、令和2年度人口動態調査(厚生労働省)の「中巻 出生 第5表 出生数,都道府県(特別区-指定都市再掲)・性・母の年齢(5歳階級)別」にある川崎市のデータです。「年齢階級」とあるのが母親の5歳ごとの年齢階級で、出生数がその年齢階級の母親から生まれた子どもの数です。
で、各母親の年齢階級の全体に対する割合を出したいのですが、式は図01のC2セルに入っているように、各年齢階級の出生数を出生の総数(合計)で割割るというものになっています。セル番地に$(ダラー)がついているのは、総数のセルを絶対参照にしているからです。「は?絶対参照?」という方は、こちらを読んでいただけるとよろしいかと思います。

図01では割合は小数で表記されています。まあ別にこれでもいいのですが、パーセント(%)表記にしたいというニーズもあります。人はどうしても、小数だと把握しづらいというのがあるようなので。
そういうときは、式を100倍する(*100)するのではなくて、表示設定をパーセンテージに変更するというのが、Excelに限らずスプレッドシートのやり方です。Excelの表示設定変更は、メニュー(リボン)の「数値」というところにあります。

図02 「数値」は「配置」と「スタイル」の間にあります

図02では、一番上のプルダウンメニューが「パーセンテージ」になっていて、表記を%にしています。なお、プルダウンメニューは通常「標準」となっています。このプルダウンメニューで変更してもいいですし、下にある % をクリックしても同じです。ちなみに、%の右側のオタマジャクシみたいなのが3桁ごとのカンマ区切り表記で、左側が通貨表示(¥などの通貨記号がついて3桁ごとにカンマで区切られる)です。
ここで%指定をすると、自動で%記号がついた%表記になります(下の方の図05や図06を参照してください)。
なお、Googleスプレッドシートでは、メニューの%マークで指定します。Excelのメニュー(リボン)の「数値」の設定と同じ機能が%マークの周辺にあります。

図03 Googleスプレッドシートの場合

Numbersの場合は、左側の「フォーマット」をクリックして「セル」タブのデータフォーマットにあるプルダウンメニューで指定します。データフォーマットの下には、小数の桁数指定があります。

図04 Numbersの場合

小数点の桁数も書式で指定した方がいい

図02はExcel、図03はGoogleスプレッドシート、図04はNumbersですが、どのスプレッドシートでも、表記(データフォーマット)と小数の桁数指定は近接してあります。ここで、表示される桁数を変えることができます。書式指定で表示桁数を変えると、自動で四捨五入されます。

図05 小数点なし
図06 小数第1位まで

図05、図06はExcelですが、他のスプレッドシートでも同じです。図05は小数点以下の表記がなく、15~19歳は0%となりますが、小数第1位まで表示されるようにした図06では0.4%となっています。このように、表示に合わせて自動で四捨五入されます。

なお、Excelは←のついているアイコンで桁数が増え、→のアイコンで桁数が減ります。一方Googleスプレッドシートでは←で桁数が減り、→で桁数が増えます。これはExcelのアイコンは矢印が小数点の前にあり、Googleスプレッドシートは小数点の後ろにあるので、増減が逆方向になるのでしょう。Numbersは桁数をダイレクトに指定するので、そういう意味では悩みません。

どうして%や桁数は書式設定にした方がいいのか

パーセントの場合、式を100倍する、図01の式でいえば、=B2/$B$11*100 にすれば100倍になります。してやると表示はされるんですが、そうすると中の値も100倍になります。例えば図06のC5セルでいえば、これだと22.6%、つまり0.226ということになります。100倍すると22.6になります。

何でそこにこだわるかというと、割合を出してさらにその値を計算に使おうという場合。0.226を使用するのか22.6を使用するのかということになります。おそらくほとんどの場合、割合を出してその値を計算に利用しようというのであれば、0.226つまり100倍していない値を使うことになるでしょう。

これは小数の表記にも、同じことが言えます。小数表記は、=round(四捨五入)、=roundup(切り上げ)、=rounddown(切り捨て)という関数があってそれを使うこともできますが、使用すると値はその値となります。
一方表記を変えている場合は、見ためが変わるだけでセル内のデータはもとのままです。

図07 C列は書式で桁数指定、D列はround関数で小数2桁までの指定をして4桁まで表示指定

図07のように、関数で強制的に桁数表記を指定すると、そこまでの値のデータになります。計算結果をさらに利用して計算をすることはよくあって、途中のデータが四捨五入された値だと最終的な値が本来求められる値と異なってしまいます。パーセントの場合も同じで、本来100倍された値が入ってしまうことになります。

まとめ スプレッドシートは計算のためのアプリ

最初のところにも書いたんですがスプレッドシートは、表を作るためのものではないのです。入れたデータを、計算するためのものなのです。だから表記を設定するだけで、中身は変えてはいけないのです。
なので、自分で100倍しないで表記を%形式に、自分で四捨五入しないで表示桁数の指定で変更するようにしていただきたいのです。そうすることで、パッと見て合ってるんだけど、計算に使うと変なことになる表というものが作られないようになっていって欲しいなと思っています。

この記事終わり

この記事が気に入ったらサポートをしてみませんか?