- 締切済み
エクセルの積み立て棒グラフへ複数の値を割り当てたい
このようなデータを積み立て、 H9.4.1 H10.4.1 順位 点数 順位 点数 山田 03位 85 01位 89 田中 02位 96 03位 68 鈴木 05位 66 02位 76 柴田 01位 100 04位 65 佐野 04位 70 05位 58 以下のように、系列名と値を各棒の中に表示させた 積み立て棒グラフで表現したいのですが、 順位と点数の様に2種類の値をデータラベルに割り当てる方法が どうしてもわかりません。 | 佐野,03位,70 | | 佐野,05位,58 | | 柴田,01位,100| | 柴田,04位,65 | | 鈴木,05位,66 | | 鈴木,02位,76 | | 田中,02位,96 | | 田中,03位,68 | | 山田,03位,85 | | 山田,01位,89 | H9.4.1 H10.4.1 どなたか、教えて頂けますでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- cafe_au_lait
- ベストアンサー率51% (143/276)
もう遅いかもしれませんが・・・。 No.1の方の操作をマクロにしてみました。 表の形を下のようにします。 名前 H9.4.1 H10.4.1 H9.4.1 H10.4.1 山田 03位 01位 85 89 田中 02位 03位 96 68 鈴木 05位 02位 66 76 柴田 01位 04位 100 65 佐野 04位 05位 70 58 以下のコードを標準モジュールに貼り付けてください。 Option Explicit Sub WriteLabel() Dim Lbl As DataLabel Dim Year As Integer Dim Num As Integer Dim Top As Range Dim i As Integer Dim j As Integer Year = 2 Num = 5 Set Top = ActiveSheet.Range("A1") For i = 1 To Year For j = 1 To Num Set Lbl = ActiveChart.SeriesCollection(j).Points(i).DataLabel Lbl.Characters.Text = Top.Offset(j).Value & "," & _ Top.Offset(j, i).Value & "," & Top.Offset(j, Year + i).Value Next j Next i End Sub Yearは年数、Numは人数です。実際の数字に変えてください。 Topは表の左上のセル位置です。上の表では「名前」のセルにあたります。これも"A1"の部分を書き換えてください。 グラフを選択した状態でマクロを実行してください。
- fukuchan7
- ベストアンサー率51% (156/302)
何人ぐらいのデータがあるのか分かりませんが、表データをそのまま利用して、順位と点数の2種類の値を自動的にデータラベルに割り当てることは、出来ないと思われますが、手間がかかりますが、次のような方法で出来ることは出来ます.試して下さい。 表データから順位のデータをはずして、点数のデータのみで積み立て棒グラフを作成し「グラフのオプション」で「値」を選択しラベル表示します。 表示された個々の値ラベルをクリックし値の数字の後に(1)のように順位を入力してゆくのです。「85(2)」のように(85は点数、(2)は順位です)」 人数が多いと大変ですが・・・
お礼
なるほど。確かにそうすれば、見た目にイメージどおりのものが作れるわけですね。ありがとうございます。他に方法が無ければ最後はそれでやることにします。 しかし、やはり自動的に割り当ては不可能でしょうか。 数百人分のデータがあるもので手作業は出来たら避けたいのですが・・・
お礼
すばらしい! まさに求めていたものです。 おかげさまで解決いたしました。 大変ありがとうございました。