【问题标题】:Excel 2007 Change colour of bars in a single series, based on another fieldExcel 2007 根据另一个字段更改单个系列中条形的颜色
【发布时间】:2013-04-15 11:45:37
【问题描述】:

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

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 的有绿色。

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

=

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

【问题讨论】:

    标签: excel colors bar-chart series


    【解决方案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 的方式,但一般原则仍应适用:迭代系列中的点,检查参考列表,并根据参考项目应用特定颜色。

    【讨论】:

    • 太好了,谢谢。循环需要在 UBound(xVals)-1 处停止,否则下一个 (p + 1) 引用会导致错误,我将 Case 语句更改为 IF,因此我可以使用通配符,但它可以满足我的需求。不幸的是,结果图表看起来很糟糕,但这是我的问题..... :)
    • @Wilskt 我进行了修改以防止出现错误。 xVals 是一个 1 索引数组,而不是最初编写的 0 索引,因此 For p = 1 to ... 并删除了循环内的 +1。否则,很高兴它通过一些小的调整对你有用!
    猜你喜欢
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2014-11-29
    • 1970-01-01
    相关资源
    最近更新 更多