ExcelのREPT関数で人口ピラミッドを表現する方法とコツ
REPT関数の基礎と考え方
REPT関数は、指定した文字や記号を、指定した回数だけ並べる関数です。セルの中で横に同じ文字を並べられるので、棒グラフのような形に見せることができます。グラフ機能を使わず、表だけでシンプルに可視化したいときに役立ちます。
基本の書式は次のとおりです。
- =REPT(文字列, 回数)
文字列には、半角の記号や英数字、全角の記号も使えます。回数には、数値や計算式を入れることができます。回数が小数になるときは、Excelが自動で小数点以下を切り捨てて扱います。切り上げや四捨五入にしたいときは、ROUNDUPやROUNDなどを組み合わせます。
空文字を使うと、ゼロのときに何も表示しないという表現ができます。たとえば、値が0のときは空にする、という書き方は次のとおりです。
- =IF(回数<=0, “”, REPT(文字列, 回数))
人口ピラミッドのように左右対称で見せたい場合は、列の並べ方を工夫します。片側を負の値にするか、左右に列を分けて配置します。文字幅がそろっていないと棒がガタガタに見えるので、等幅フォントを使うと形が安定します。
REPTは絵文字や全角記号でも使える?
REPTは絵文字や全角記号にも使えますが、文字幅が均等でないと棒の長さがずれて見えます。人口ピラミッドのような左右対称の形を狙うときは、半角の記号や等幅フォントでの表示をおすすめします。
棒に見せる文字選びと配置
棒に見せるために、どの記号を繰り返すかが大切です。次のような候補がよく使われます。
- 半角の縦棒やシャープ記号: |, #
- ブロック記号: ■, ▓, █
- ダッシュや中点: -, ·
見た目を安定させるには、等幅フォントを選びます。列の幅、行の高さ、セルの余白、水平・垂直の配置も影響します。左右の列で同じ設定にすることで、棒の長さが比較しやすくなります。
配置は、左側に女性、右側に男性など、対象ごとに列を分けます。左側を右寄せ、右側を左寄せにすると、中心線に向かって棒が伸びる見た目にできます。中央に年齢の区間を並べると、読み手が視線を合わせやすくなります。
セル内で数値と棒を両方見せたいときは、文字列の前や後ろに数値を連結します。次のように書くと、左に棒、右に人数の表示という形になります。
- =REPT(“|”, 回数) & ” ” & 人数
棒だけにしたいときは、人数の表示を省略します。列幅が広すぎると間延びして見えるので、適度に狭めると棒の密度が増して読みやすくなります。
文字幅のズレを最小にする設定は?
等幅フォントを使い、列幅と行高を左右で同じにします。セルの配置は中央寄せか端寄せで統一します。半角記号を使い、全角や異なるフォントの混在を避けるとズレが小さくなります。
人口ピラミッドの設計(集合横棒と積み上げの使い分け)
人口ピラミッドは、年齢の区間ごとに女性と男性の人数を並べ、左右に広がる形で人口の分布を見せます。REPTで表現する場合、左右対称に並べるための設計が重要です。基本は、中央に年齢の区間、左列に女性の棒、右列に男性の棒を置きます。
左右対称にするための考え方は2つあります。片側の人数にマイナスの符号を付けて計算し、棒を左に出す方法。もう一つは、単純に左右に別の列を用意して、棒を右寄せや左寄せで向きをそろえる方法です。REPTは文字列を繰り返すだけで、負の回数は使えません。符号は回数の計算で調整するか、表示列の寄せ方で見た目を整えます。
集合横棒と積み上げの違いは、見たい比較の軸で選びます。集合横棒は、同じ区間で女性と男性を並べて比較しやすい方法です。積み上げは、合計の大きさを一目で把握しやすい方法です。REPTで積み上げ風に見せるときは、女性の棒の後ろに男性の棒を連結し、区切りのスペースを挟むなどの工夫をします。
比較のポイントを次の表にまとめます。
| 観点 | 集合横棒 | 積み上げ |
|---|---|---|
| 読みやすさ | 女性と男性の差が見やすい | 合計の大小が見やすい |
| 作成の手間 | 列を左右に配置する | 文字列の連結や区切りが必要 |
| 向いている場面 | 男女差の比較 | 合計規模の把握 |
ラベルは、中央の区間の行に年齢の範囲を置きます。行の順序は上から若年、下に高齢とするか、逆順でも構いません。データの並びと一致させると更新が楽になります。
マイナス表示記号(-)が見えるのは避けられる?
REPTの回数に負数は使いません。人数の集計は正の値にしておき、左右の列を分け、配置で左右対称に見せます。表示形式で負号を消すのではなく、回数の算出を正に保つと、記号が見える問題を避けやすいです。
REPT関数の入力と男女別の式
ここからは、具体的な式の作り方を示します。考え方は次の3点です。回数の基準を決める、ゼロや欠損を空にする、人数の表示を必要に応じて付ける、の順で設計します。
まず、回数の基準となる倍率を決めます。たとえば、10人で記号1つ、100人で記号1つなど、見たい範囲に合わせて決めます。最大値に合わせて列幅とバランスが取れる倍率にすると、全体が見やすくなります。
- 倍率例1: 記号1つ=10人 → 回数=人数/10
- 倍率例2: 記号1つ=100人 → 回数=人数/100
小数の扱いは、ROUND、ROUNDUP、ROUNDDOWNで調整します。四捨五入で棒の長さを安定させるならROUNDを、過小評価を避けたいならROUNDUPを選びます。
ゼロや空白のときは、セルを空にして見た目をすっきりさせます。次のIFを組み合わせます。
- =IF(人数<=0, “”, REPT(“|”, ROUND(人数/倍率, 0)))
数値も一緒に見せたい場合は、連結します。
- =REPT(“|”, ROUND(人数/倍率, 0)) & ” ” & TEXT(人数, “#,##0”)
女性の数式(Q&A付き)
女性の列は左側に置き、右寄せにします。記号は半角の縦棒やブロック記号が読みやすいです。例として、女性人数が列Cにあるときの式は次のようになります。
- =IF(C2<=0, “”, REPT(“|”, ROUND(C2/$F$1, 0)))
ここで、F1に倍率を入れています。中央の年齢区間は別の列に表示します。女性列のセルの配置は右寄せに設定します。
Q: 女性の列だけ棒が短く見えるのはなぜ?
A: 列幅が左右で異なる、フォントが違う、記号が全角になっている、などが原因です。左右の列で幅とフォントを同じにしてください。
男性の数式(Q&A付き)
男性の列は右側に置き、左寄せにします。男性人数が列Dにあるときの式の例は次のとおりです。
- =IF(D2<=0, “”, REPT(“|”, ROUND(D2/$F$1, 0)))
男性列のセルの配置は左寄せにします。中央の年齢区間と上下の並びは、女性列と同じ行にそろえます。
Q: 棒の先端がずれて左右非対称に見えるのは?
A: 年齢区間の列の幅が広い、または女性と男性の列の寄せ方が違うと中心から離れて見えます。年齢区間の列は細めにし、左右の寄せ方をそろえてください。
スピル対応FREQUENCYで年代分布を作る
REPTで棒を作る前に、人数の集計表が必要です。年齢のデータから、区間ごとに人数を数えるには、FREQUENCY関数が便利です。スピルに対応したExcelでは、配列で結果を一気に出力できます。
準備として、区間の上限値の一覧を縦に並べます。たとえば、0, 9, 19, 29, 39 のように、行ごとに最大値を置きます。次に、年齢のデータ範囲を用意します。
FREQUENCYの基本形は次のとおりです。
- =FREQUENCY(年齢の範囲, 区間上限の範囲)
この式を、区間上限の一覧の先頭セルに入れると、下の行に結果がスピルします。各行が、その上限までの人数を表します。男女別に集計したい場合は、FILTERで女性だけ、男性だけに分けた範囲を作ります。
- =FREQUENCY(FILTER(年齢範囲, 性別範囲=”女性”), 区間上限の範囲)
- =FREQUENCY(FILTER(年齢範囲, 性別範囲=”男性”), 区間上限の範囲)
区間の端点の扱いはルールがあります。FREQUENCYは、各区間の上限を含み、次の区間の下限は含みません。最後の区間より上の値は、最後の行にまとめられます。端点の混乱を避けるために、区間の表示と上限値の並びを合わせます。
スピルの結果をREPTの回数に使うと、区間ごとの棒を自動で表示できます。データが増減したときも、再計算だけで形が更新されます。
区間の上限・下限の含み方は?
FREQUENCYは、各行の上限を含む集計です。たとえば、上限が9なら0から9までがその行に数えられます。次の行の上限19には、10から19が入ります。最後の行は、最後の上限より大きい値がすべて入ります。
フォントを整える
人口ピラミッドを文字で表現する場合、フォントの選び方で見た目の安定が大きく変わります。等幅フォントは、すべての文字が同じ幅で表示されるため、棒の長さが意図通りにそろいます。Windowsでは、ConsolasやCourier Newなどが一般的です。Macでは、Osaka等幅やMenloなどが候補になります。
左右の列と中央の区間の列で、同じフォント、同じサイズを使います。列幅と行高も左右で合わせます。セルの配置は、女性の列は右寄せ、男性の列は左寄せ、区間は中央寄せにすると、形が整います。
等幅が使えない環境では?
等幅フォントが使えない場合は、半角の記号だけを使い、全角の混在を避けます。列幅を少し狭め、棒の密度を上げると、ズレが目立ちにくくなります。列の寄せ方を統一することも効果があります。
色で読みやすくする
色分けは、男女の棒を見分けやすくします。女性を暖色、男性を寒色にするなど、意味が直感的に伝わる色を選びます。色弱への配慮として、色の明度差や彩度差をつけ、コントラストを確保します。白黒印刷に備え、棒の前後に記号を混ぜるなど、形で識別できる工夫も考えます。
手作業で色を付ける以外に、条件付き書式を使う方法があります。列や行で条件を設定し、女性の列は特定の色、男性の列は別の色に自動で塗り分けます。シート全体のテーマ色を使うと、配色が崩れにくく一体感が出ます。
凡例の代わりに、列見出しに女性、男性と明記し、そのセルの文字色を実際の棒と合わせます。読む人が迷わないように、シートの上部に簡単な説明を置くのも有効です。
白黒印刷でもわかる工夫は?
棒の記号を女性と男性で変える、記号の数値表示を添える、中央の区間の文字を太くする、などの方法があります。色だけに頼らず、形と数字の両方で区別できるようにします。
参考: 集合横棒と積み上げをREPTで作る例の流れ
- 1. 年齢データと性別データを準備する。
- 2. 区間の上限値一覧を作る。
- 3. FREQUENCYで女性と男性の区間別人数を集計する。
- 4. 倍率を決め、回数に変換するセルを用意する。
- 5. 女性列にREPTの式を入れ、右寄せに設定する。
- 6. 男性列にREPTの式を入れ、左寄せに設定する。
- 7. 中央の区間列を整え、行の順序を決める。
- 8. 必要なら、棒と人数の連結表示にする。
- 9. フォントを等幅にし、列幅と行高を左右同じにする。
- 10. 色分けや条件付き書式で読みやすさを高める。