Excel图表 - 类别和子类别分组

时间:2011-10-07 19:30:10

标签: excel graph statistics

我很少使用excel并且对图形和图形相关功能没有深刻的理解。说完了......

我有数十行数据,由4列

组成
  • 第1列=金额/价格(以数字表示)
  • 第2栏=描述(什么 在文中)
  • 第3列=类别(文字内)
  • 第4列=子类别(in 文本)

我想制作一系列数据的条形图,最终结果如下:

X轴 - 类别 Y轴 - 金额/价格

这里的诀窍是不重复自己的类别。例如,如果我们的数据类似......

  • 100 |船购买船| 3发动机船
  • 200 |船购买 船| 2发动机船
  • 500 |飞机购买|飞机| 4引擎飞机
  • 900 |汽车购买|汽车| 1发动机汽车

然后在我的图表中应该只有一个船只,飞机和汽车的实例,在这个实例中,所有相关数据将被总结。

最后但并非最不重要的是,我已经看过图表,这些独特的不重复的类别,而不仅仅是一个单一的“酒吧”可以说是由较小的条组成。在这种情况下,我希望这些较小的条形成为子类别,因此最终结果将如下所示:

basic and complex graph samples

在该示例图像中,我首先呈现一个“基本的,经典的”图表,其中蓝色,黄色和红色各自代表一个独特的,不同的类别。正下方是我想要的,每个类别按子类别“细分”,其中蓝色/黄色/红色各自代表每个类别虚构的3个不同子类别。

这意味着子类别将为每个类别重复,但类别本身不会重复。

为了澄清,我目前只有3个主要类别和6个左右的子类别,但这可能会在未来发生变化,因此希望以自动/动态方式实现这一目标

亲切的问候 G.Campos

编辑:新形象:

better explanation of desired graph result

2 个答案:

答案 0 :(得分:11)

我在这里接受它。不幸的是我无法发布截图,因为我没有足够的帖子。

一种解决方案是使用数字图表将金额放入“值”,“行标签”中的类别和“列标签”中的子类别。

我在免费图片上传服务上传了相关图片。

这是我们的源数据:

Amount  Decription  Category    SubCategory
100     boat purchase   boats   3 engine boat
200     boat purchase   boats   2 engine boat
500     plane purchase  planes  4 engine plane
900     car purchase    cars    1 engine car
450     boat purchase   boats   2 engine boat
110     plane purchase  planes  4 engine plane
550     car purchase    cars    1 engine car
230     car purchase    cars    2 engine car
450     car purchase    cars    5 engine car

这是所需的图形(编辑:这有鬼条):

http://imageshack.us/photo/my-images/849/pivot.gif/

我刚读过关于没有幽灵图的评论。这可能就是你要找的东西:

http://imageshack.us/photo/my-images/266/pivotnoghost.gif/

只是谷歌搜索,发现一些非常类似的东西:

peltiertech.com/WordPress/using-pivot-table-data-for-a-chart-with-a-dual-category-axis /

您需要添加http://(由于帖子数量较少,我不能有两个以上的超链接)

答案 1 :(得分:2)

我不确定这会让你准确到达你想要的位置但我总体上发现在excel中最简单的方法是在单独的标签上总结你的图表数据。

对于像这样的样本数据

dataset

您将在工作表中创建第二个选项卡,如

summary data

总计是使用sumif公式计算的

=SUMIF(Data!C:C,Summary!A2,Data!A:A)

对于类别总计

=SUMIF(Data!D:D,Summary!E2,Data!A:A)

对于子类别总计(假设子类别是互斥的)。现在总结了该数据,突出显示单元格并插入以下图表的柱形图。

pretty charts

添加新类别和/或子类别将要求您向摘要数据添加行,然后向图表添加系列。您可以使用vba宏来自动执行该任务,但我怀疑这是过度的,因为您的数据集是“数十”而不是“数千”