• 締切済み

エクセルのグラフを折り返したい

エクセルのグラフについての質問なのですがたとえば みかん 13個 りんご  7個 いちご 82個 ぶどう  4個 栗   63個 のようなデータを棒グラフにする時に、グラフの数値上限を50にして 50を超えた分は新たに隣にグラフを続けたいのです。 (視覚的には、上の例でいちご82個をいちご50個にして次の行に空白名で32個に 栗も50個と空白名13個にして棒グラフを全部で7本立てるイメージ) もちろんカッコ内のようにあらかじめデータ入力の時点で行分けをしておけばいいのですが 数字は変動させたいですし(100も超えるかも)場合によっては新しい果物も追加されるので できれば上のようなデータから自動的にmax50なグラフにしたいのです。 当方マクロについてはまだ素人同然なのですが、何か良い手はないでしょうか? なお みかん 13個 りんご  7個 いちご 50個 32個 ぶどう  4個 栗   50個 13個 とすると棒グラフの間隔がバラバラになってしまうので できれば上のカッコで書いたような形のグラフになるような方法はないでしょうか?

みんなの回答

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

棒の太さはみな同じです。 はじめは、折り返しの棒の色が違う色になるが、好きな色にできます。 それぞれの人の間隔は等間隔です。 見た目はいいと思うのですが。普通のグラフだから。 この前の回答は、条件にいい加減のところがあったので、下記のようにします。 目盛上限 50 データ 200を超えるものがある。 total列を含めてデータが6列になる。 total列がC7からとする例だからここは適当に。 total列の右1列目の数式、=IF(C7>50,50,C7) total列の右2列目の数式、=IF(C7>100,50,IF(C7-50>0,C7-50,"")) total列の右3列目の数式、=IF(C7>150,50,IF(C7-100>0,C7-100,"")) total列の右4列目の数式、=IF(C7>200,50,IF(C7-150>0,C7-150,"")) total列の右5列目の数式、=IF(C7>250,50,IF(C7-200>0,C7-200,"")) これらを下にドラッグコピーする。 これで、5系列ある棒グラフにすれば、自動的に折り返しの棒は接近して表示される。 グラフの棒の上で右クリックして、「データ系列の書式設定」の、「パターン」で色や線を、「オプション」で、棒の太さや重なり具合を調節すれば、きれいなグラフができると思うよ。

JOLJU
質問者

補足

何度もお手数をかけてすみません。 間隔を整えたいのは人ではなくて棒グラフのほうなので その方法だと50未満で棒が一本のところと150以上で棒が4本のところが連続して続くと その間隔はかなり不均等なものになりませんか? おそらく50未満の人の棒1本を、その人の場所の範囲の中央に持ってくることはできないと思いますし、 そうなると見た目にかなり悪いですし1本しかない人の気分も良くないと思います。 基本的に棒グラフを整えたい理由は自分がキレイなグラフを作りたいのではなくて 誰が見ても不満の声を出さないようなものにしたいためです。 そのためには全員平等という感覚が強いものでないといけないと思います。 またその場合ですと全員に対して複数本分の棒グラフを立てる幅を必要とするために たとえば200人×6本みたいなことになるととてもとてもスペースが足りません。 (たった一人の280件くらいのために) 無理矢理作ったとしても印刷した結果は恐ろしいものになると思います。 ですから基本的に質問文のカッコ内のやりかたで作るような、 空欄といいますか棒の立たない列がないようなグラフにしたいのです。 特に、余所からデータを持ってきて貼り付けると自動的にそういう形になるようなものがベストです。 やはり無理難題すぎるでしょうか・・・。 追伸. 困り度アイコンが非常に困っている赤色のものになっていますが 黄色にしたつもりが赤になってしまいました。 無理そうであれば上司には無理と断るつもりです。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

質問からすると、グラフを作りたいのではなくて、等間隔に棒を並べたいように受け取られる。 普通のグラフは、目盛上限を超えるデータは、2本以上の棒で表現するが、この項目の棒は狭く接近させるか、一部分重ねて表示して、他の項目と同等の等間隔になどはしない。 特殊な用途でもあるのですか。 普通のグラフなら、質問の後半にあるような、列を別にしたデータで、表現できるから、このデータをどのように作るかということになる。 マクロを使わないのなら、totalのデータとは別の列に目盛上限までのデータをtotalになるまで作り、それをグラフにするということではないか。 if文を使うなどして、          100を超えたら 100を超えたら total-100     total   50       50        or          50を超えたら 50を超えたら total-50               50      total-50              その他は           total みかん 13個   13個 りんご  7個    7個 いちご132個   50個    50個    32個 ぶどう  4個    4個 栗   63個   50個    13個

JOLJU
質問者

補足

早速の返答どうもありがとうございます。 果物でたとえたのが失敗だったかもしれません。 実は昨年実績に対する今年の進捗率を手書きで埋めていくグラフを作りたいのです。 果物の個数ではなくたとえばAさんBさんCさん・・・という人間の 昨年時の実績成績をあらかじめ白抜きのグラフにして印刷、壁に貼り 今年の挙績成績を下から塗りつぶしていくというものです。 50で折り返すとしたのは8割ほどの人は実績50未満であるけれど 極一部の人は200すら超えることもあるということです。 そして毎月当月分のものに作り変えていくこと、さらには支店内の人数がとても多い(200人超)ことを考えて 自動でグラフができないかと思った次第です。 また壁に貼るために見た目にも多少なりまともなものにしたく、 間隔がバラバラというのはちょっと困るとした次第です。 (ただでさえ人数が多いために印刷は3x3のポスター等にする予定です) あとすみません質問なのですが > 目盛上限を超えるデータは、2本以上の棒で表現するが、この項目の棒は狭く接近させる とのことですが、上限を超えた項目だけ狭くさせて他は等間隔のようなことは可能なのでしょうか? ひとつだけ他の1/4の細さになっていたりするのもやや見た目に難ありですが・・・。

関連するQ&A