エクセルで面グラフ(量率グラフorモザイク図)を作成してみた。(関数編)
前回はグラフ100本を使って「量と率」を表現するグラフの作成方法を紹介しました。
データの数値が変更になっただけでもいちいち手作業で修正更新しなければいけないので少しは楽になるかと考えて関数を使ってみましたのでご紹介します。
目標となるデータ(数値は適当です)
関数ということで縦長の方が便利かなということで行列が前回とは入れ替わっています。
・セルA1に「地域」と記入して埋めてセル範囲A1:D4を選択し、テーブルに変換(ctl+T)します。
(セルA1が空のままテーブルに変換するとエクセルが「列1」と埋めてくれます。)
↓
・セルE1に「合計」と記入するとテーブル範囲が自動で広がりますが、気にせずセルE2に関数を代入します。
(E2を選択、数式バーに「=SU」とタイプ入力、↓でsumを選んでtabで確定、←3回、shift+→2回、enterとするとセルE2:E4すべてに関数が自動で適用されます。)
↓
同様に
・セルF1に「比率」と記入
セルF2に関数「=ROUND([@合計]/SUM([合計])*100,0)」を代入
・セルG1に「累計」と記入
セルG2に「=SUM(テーブル1[[#見出し],[比率]]:[@比率])」を代入
・セルH1に「座標」と記入
セルH2に「=[@累計]-[@比率]+1」と代入
↓
ここで一工夫しておきます。H列を一番左に移動させます。
(H列を選択して枠の黒い部分をクリック>ドラッグで一番左へ)
こちらの表(テーブル1)はひとまず出来上がり。
さて次はグラフ用のデータ範囲をつくります。
セルJ2から下にセルJ101まで1から100までの数字を記入します。
そして順に以下のように関数を記入します。
・セルK2に関数「=IFERROR(VLOOKUP($J2,テーブル1,2,0),"")」
・セルL2に関数「=IFERROR(VLOOKUP($J2,テーブル1,7,0),"")」
・セルM2に関数「=IF($K2="",M1,VLOOKUP($J2,テーブル1,3,0))」
・セルN2に関数「=IF($K2="",M1,VLOOKUP($J2,テーブル1,4,0))」
・セルO2に関数「=IF($K2="",M1,VLOOKUP($J2,テーブル1,5,0))」
101行まで数式をコピー
・セルM1に値「石油」、セルN1に「石炭」、セルO1に「ガス」を記入
そして
・J列の順番を以下のようにM列のすぐ左へ移動させます。
さて グラフ用のデータ範囲は出来上がり。
↓
いよいよ次はグラフです。
セルJ1:O101を選択してリボンの挿入メニューからおなじみ100%積み上げ縦棒グラフを選びます。
ちなみに5行目に下のようにデータを追加するとテーブル1の範囲が自動で拡張されてグラフも更新されます。(便利かも!?)
・地域、石油、石炭、ガスの列の一番下5行目に「ドイツ」、「100」、「100」、「100」と追加するとグラフも更新されます。
以上、「量率グラフをエクセルでつくってみた(関数編)」でした。