You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中创建动态同心圆与旭日图?

Excel 动态三层环形图表创建步骤(适配新增数据行)

一、配置动态数据源

  • 选中包含三列数据的区域(需包含表头,例如A1:Cn),按下Ctrl+T创建超级表,勾选「我的表有标题」后确认。超级表会自动随新增数据行扩展范围。
  • 可选:右键超级表→「表名称」,将其重命名为DynamicData,方便后续引用。

二、插入多层环形图

  • 点击超级表内任意单元格,切换到「插入」选项卡,在「图表」组中选择「环形图」(基础样式即可)。此时图表会自动将三列数据映射为三层环形系列,每行数据对应一个环形分段。

三、调整环形层级实现外圆/中间圆/内圈效果

  • 右键点击最外层环形(对应第一列数据)→「设置数据系列格式」,在右侧面板的「系列选项」中调整「圆环图内径大小」为较小值(如20%),构建外圆形态。
  • 右键点击中间层环形(对应第二列数据)→「设置数据系列格式」,将内径调整为较大值(如50%),形成中间圆。
  • 最内层环形(对应第三列数据)保持默认内径(如70%),后续通过宏设置深色填充。

四、实现数据动态适配

  • 由于使用了超级表,在数据区域下方新增行并输入数据后,超级表会自动扩展,图表数据源同步更新,新增的分段会自动显示在环形图中。

五、优化宏的动态适配逻辑

  • 修改原有的颜色设置宏,使其遍历所有数据点而非固定行数,示例代码如下:
Sub SetInnerRingColor()
    Dim targetChart As Chart
    Dim innerSeries As Series
    Dim dataPoint As Point
    
    ' 替换为你的图表所在工作表和图表名称
    Set targetChart = ThisWorkbook.Worksheets("Sheet1").ChartObjects("Chart 1").Chart
    ' 第三列数据对应第三个系列,按需调整序号
    Set innerSeries = targetChart.SeriesCollection(3)
    
    For Each dataPoint In innerSeries.Points
        dataPoint.Format.Fill.ForeColor.RGB = RGB(40, 40, 40) ' 自定义深色RGB值
    Next dataPoint
End Sub
  • 添加自动触发逻辑:在数据所在工作表的代码窗口中,插入Worksheet_Change事件,当超级表数据变更时自动调用宏:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dataTable As ListObject
    Set dataTable = Me.ListObjects("DynamicData")
    
    If Not Intersect(Target, dataTable.Range) Is Nothing Then
        Call SetInnerRingColor
    End If
End Sub

六、验证动态效果

  • 在超级表下方新增一行并填入三列数据,图表会自动新增对应分段,同时宏会自动为内圈分段设置深色填充。

内容的提问来源于stack exchange,提问作者qatestprofile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:15:36