こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで量・割合が分かるグラフをつくりたい

こんばんは。エクセルは高校・大学の授業で習いましたが、不慣れな点がある者です。
基本的なことだと思うのですが、このたび、量と割合が分かるグラフ(なるべく円グラフ)をつくりたいと思い、エクセルでの作り方を尋ねに参りました。

たとえば(x,y)として、(5,19),(2,5),(7,10),(0,3)があり、
xのyに対する割合を円グラフで示すことは出来ますが、
私がしたいことは、それに加えて、yの大きさによって円グラフの円自体の大きさが変わり、円の大きさを見ることでyの大きさが分かるようなグラフです。

いろいろな資料でよく見かけますが、実際私もつくってみたいと思いました。しかし、エクセルをいじってみても適切にできず、さまざまなキーワードを入れて検索しましたが、うまく引っかからなかったので、こちらでお世話になります。どうぞよろしくお願い申し上げます。

投稿日時 - 2011-01-03 23:00:38

QNo.6423550

暇なときに回答ください

質問者が選んだベストアンサー

エクセルはグラフ専用ソフトではない。それも文系のニーズに応えるが主のようだ。色々質問者が要求を出しても、エクセルのグラフでは種類の数や仕様が決っていて、それ以外では描けない。
エクセルグラフの種類をすべて当っていて質問してますか。判らないからすぐ聞くのでなく、まずやってみることを質問する前にやるべきです。
ーーー
その中にバブルチャートというのがあるが、其れでどうですか。
解説は、グラフの種類の名前がわかれば、こんなところへ質問しなくても、Googleなどで照会すれば、実例付きの説明がある。
例えば
http://ohpa.net/modules/xlnote/content0202.html
のように。
ただ質問の内容とバブルチャートは違う点が多いが一応指摘してみる。
ーーー
普通の操作ではできないと思うので、VBAで考えた。
VBAに熟練しておれば
例データ A1:D5
XY相対倍率
a5190.76
b250.2
c7100.4
d9251
D2は=C2/MAX($C$2:$C$20)を入れて下方向に式を複写している。C$20はデータが19行以内ということ。
ーーーーー
コード
標準モジュールに
Sub Macro3()
Dim l
Dim h, w
j = 1
d = Range("A65536").End(xlUp).Row
Sheets("Sheet1").DrawingObjects.Delete
For i = 2 To d
Range("A2:C2").Select
Charts.Add
ActiveChart.ChartType = xlPie
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A" & i & ":C" & i)
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
With Selection.Border
.Weight = 2
.LineStyle = 0
End With
ActiveChart.Legend.Delete
n = ActiveChart.Name
MsgBox n
MsgBox i
ActiveSheet.Shapes(j).ScaleHeight Worksheets("Sheet1").Range("D" & i), msoFalse
ActiveSheet.Shapes(j).ScaleWidth Worksheets("Sheet1").Range("D" & i), msoFalse
ActiveSheet.Shapes(j).Left = l
l = l + ActiveSheet.Shapes(j).Width
j = j + 1
Next i
End Sub
を入れて実行する。
ーーーーー
これはD列の値に応じて、大小の円グラフが左から右へ4つ並ぶ。
これの位置関係や様子に不満があるかもしれないが、VBAを勉強して改良してみたら。
上辺でそろえているが、各グラフのTopを、最大のグラフのTopー(最大グラフのHeight-そのグラフのHeight)にプログラムを修正すれば、下辺でそろえるのはすぐできる。
興味が出て試行錯誤したが、上記でも、簡単なように見えて、結構時間がかかった。もうこれ以上はやる気が出ない。
質問者はVBAの経験は不明だが、少しぐらいやったことがあっても難しいだろう。
エクセルの円グラフは、複数の円グラフだけ、「1つのグラフエリアに」並べることはできないように思う。
円グラフは1つのグラフエリア+1つの円グラフとしてできてしまうと思う。
VB.NETなどを勉強すればできると思うが、膨大な勉強が必要で、そんなに簡単にできないだろう。
ーー
他のグラフソフトでできないか検討したら。

投稿日時 - 2011-01-04 18:39:55

お礼

非常に詳しいご回答、ありがとうございます!
エクセルならばどのようなグラフも作れると思っていましたが、そうではないのですね。私が行おうとしたのは、授業ではなく、私の趣味の活動でグラフを作ってみようと思ったことです。エクセルのグラフを全て試してみましたが、道理でうまくいかなかったわけです。納得いたしました。

VBAについては大学の授業である程度習いましたが、その授業が教養科目ですので、回答者様にとれば習っていないに等しい範疇だと思われます。おまけに私は文学部生ですので、継続してVBAを高度に学ぶことは難しいのが現状です。

ご回答誠にありがとうございました。私の力では十分に理解することができなかったところが一部ございますことをお詫び申し上げます。

投稿日時 - 2011-01-05 23:43:49

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

一般にご相談のデータを定量的に表現できるExcelのグラフは,単純な積み上げ棒グラフ(添付図上)です。

ご希望の円グラフでサイズを定量化しようとしたら,添付図右下のようにバルーンを使って相対的な円サイズを表示させた上で,手作業で円グラフを重ねて配置するような手数を費やす事になります。

もうひとつ別の表現方法として,一般に「量率グラフ」という名で知られる添付図左下のようなグラフもあります。添付図はなんとかしてエクセルで作成していますが,ネットで「量率グラフ」を検索してみると幾つかツールがヒットしますので,ご利用になってみると良いと思います。

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWaveよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2011-01-04 01:23:38

お礼

ご回答どうもありがとうございます!
時間はたくさんあったので、バルーンを使って手作業で円グラフを重ねました。手間はかかりましたが、おかげさまで希望通りのグラフが作成できました。
どうもありがとうございました!

投稿日時 - 2011-01-05 23:31:36