-PR-
  • 暇なときにでも
  • 2011-01-03 23:00:38
  • 質問No.6423550
解決
済み

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

  • 閲覧数2720
  • ありがとう数4
  • 気になる数0
  • 回答数2
  • コメント数0
nobitaman

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

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

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

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

    • 2011-01-04 18:39:55
    • 回答No.2
    エクセルはグラフ専用ソフトではない。それも文系のニーズに応えるが主のようだ。色々質問者が要求を出しても、エクセルのグラフでは種類の数や仕様が決っていて、それ以外では描けない。
    エクセルグラフの種類をすべて当っていて質問してますか。判らないからすぐ聞くのでなく、まずやってみることを質問する前にやるべきです。
    ーーー
    その中にバブルチャートというのがあるが、其れでどうですか。
    解説は、グラフの種類の名前がわかれば、こんなところへ質問しなくても、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などを勉強すればできると思うが、膨大な勉強が必要で、そんなに簡単にできないだろう。
    ーー
    他のグラフソフトでできないか検討したら。
    お礼コメント
    非常に詳しいご回答、ありがとうございます!
    エクセルならばどのようなグラフも作れると思っていましたが、そうではないのですね。私が行おうとしたのは、授業ではなく、私の趣味の活動でグラフを作ってみようと思ったことです。エクセルのグラフを全て試してみましたが、道理でうまくいかなかったわけです。納得いたしました。

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

    ご回答誠にありがとうございました。私の力では十分に理解することができなかったところが一部ございますことをお詫び申し上げます。
    投稿日時 - 2011-01-05 23:43:49
    • ありがとう数0
    -PR-
    -PR-

    その他の回答 (全1件)

    • 2011-01-04 01:23:38
    • 回答No.1
    一般にご相談のデータを定量的に表現できるExcelのグラフは,単純な積み上げ棒グラフ(添付図上)です。 ご希望の円グラフでサイズを定量化しようとしたら,添付図右下のようにバルーンを使って相対的な円サイズを表示させた上で,手作業で円グラフを重ねて配置するような手数を費やす事になります。 もうひとつ別の表現方法として,一般に「量率グラフ」という名で知られる添付図左下のようなグラフもあります。添付図はなんと ...続きを読む
    一般にご相談のデータを定量的に表現できるExcelのグラフは,単純な積み上げ棒グラフ(添付図上)です。

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

    もうひとつ別の表現方法として,一般に「量率グラフ」という名で知られる添付図左下のようなグラフもあります。添付図はなんとかしてエクセルで作成していますが,ネットで「量率グラフ」を検索してみると幾つかツールがヒットしますので,ご利用になってみると良いと思います。
    お礼コメント
    ご回答どうもありがとうございます!
    時間はたくさんあったので、バルーンを使って手作業で円グラフを重ねました。手間はかかりましたが、おかげさまで希望通りのグラフが作成できました。
    どうもありがとうございました!
    投稿日時 - 2011-01-05 23:31:36
    • ありがとう数0
    • 回答数2
    • 気になる数0
    • ありがとう数2
    • ありがとう
    • なるほど、役に立ったなど
      感じた思いを「ありがとう」で
      伝えてください
    • 質問する
    • 知りたいこと、悩んでいることを
      投稿してみましょう
    このやり方知ってる!同じこと困ったことある。経験を教えて!
    このQ&Aにはまだコメントがありません。
    あなたの思ったこと、知っていることをここにコメントしてみましょう。

    関連するQ&A

    -PR-
    -PR-

    その他の関連するQ&Aをキーワードで探す

    別のキーワードで再検索する
    -PR-
    -PR-
    -PR-

    特集


    成功のポイントとは?M&Aで経営の不安を解決!

    -PR-

    ピックアップ

    -PR-
    ページ先頭へ