1

我有一个包含如下数据的数据透视表:

Chain     Store               Units
Bob's     BB Los Angeles        10
Bob's     BB San Diego          12
Tom's     TM Los Angeles        12
Tom's     TM San Francisco      18
Kate's    K Monterey            11

目前我有一个条形图,只是按降序显示所有商店和单位,所以首先是 TM San Francisco,然后是 TM Los Angeles 和 BB San Diego,然后是 K Monterey 等。这就是我想要查看数据的方式。

但我还想对链条进行颜色编码,所以 Bob 的商店有一个红色的条,Tom 的有蓝色,而 Kate 的有绿色。

是否有可能做到这一点?我尝试了各种设置数据透视表的方法,但最终看起来一团糟,我找不到将每个条形图的颜色基于“链”字段的方法。

=

我正在测试宏解决方案,但如果有人有非宏解决方案,请仍然回答。:)

4

1 回答 1

1

如果您正在寻找基于宏/VBA 的解决方案,那么操作图表的数据点格式非常容易。假设系列 XValues = Chain,您可以这样做:

Sub SetColors()
Dim cht As Chart
Dim srs As Series
Dim xVals As Variant
Dim p As Long

Set cht = ActiveSheet.ChartObjects(1).Chart '<-- Modify as needed'
Set srs = cht.SeriesCollection(1) '<-- Modify as needed'

xVals = srs.XValues  '<-- modify as needed, if your Chain is not part of series data you will need to build this array another way'

For p = 1 To UBound(xVals)
    Select Case xVals(p)
        Case "Bob's"
            srs.Points(p).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
        Case "Tom's"
            srs.Points(p).Format.Fill.ForeColor.RGB = RGB(0, 255, 0)
        Case "Kate's"
            srs.Points(p).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
    End Select
Next
End Sub

如果链不是系列数据的一部分,则必须更改xVals设置方式,但一般原则仍应适用:遍历系列中的点,检查参考列表,并应用特定颜色基于参考项目。

于 2013-04-15T12:08:58.160 回答