需先将数据转为结构化表格,再用OFFSET定义动态名称PieValues和PieLabels,接着插入饼图并绑定这两个名称,最后可通过切片器或下拉列表+INDIRECT实现交互筛选与系列切换。

一、准备结构化数据表
将原始数据组织为规范的二维表格,确保首行为字段标题(如“类别”、“数值”),且后续所有新增行均位于同一连续区域内。结构化表格可提升公式引用稳定性,并为后续动态范围定义提供基础。
1、选中包含标题与数据的区域(例如A1:B10)。
2、按 Ctrl + T 打开“创建表”对话框。
3、勾选“表包含标题”,点击“确定”完成转换,表格自动命名为“表1”。
二、使用OFFSET函数定义动态名称
通过OFFSET函数配合COUNTA统计非空单元格数量,生成可随数据增减自动伸缩的引用区域,避免手动调整图表数据源。
1、点击“公式”选项卡,选择“名称管理器”。
2、点击“新建”,在“名称”栏输入 PieValues。
3、在“引用位置”输入公式:=OFFSET(表1[[#Headers],[数值]],1,0,COUNTA(表1[类别])-1,1)。
4、再新建名称 PieLabels,引用位置为:=OFFSET(表1[[#Headers],[类别]],1,0,COUNTA(表1[类别])-1,1)。
三、插入饼图并绑定动态数据源
图表需直接引用上一步定义的动态名称,而非固定单元格区域,才能响应数据变化实时重绘扇区占比。
1、点击“插入”选项卡,在“图表”组中选择“饼图”→“二维饼图”。
2、右键点击空白图表,选择“选择数据”。
3、点击“添加”新建图例项,在“系列值”框中输入:=Sheet1!PieValues。
4、在“水平(分类)轴标签”中点击“编辑”,输入:=Sheet1!PieLabels。
四、添加切片器实现交互筛选
切片器可联动数据透视表与图表,允许用户通过点击按钮切换不同维度的数据子集,使饼图显示对应分组的占比分布。
1、基于原数据表插入数据透视表,将“类别”拖入“行”区域,“数值”拖入“值”区域(求和)。
2、选中透视表任意单元格,点击“分析”选项卡→“插入切片器”,勾选用于筛选的字段(如“月份”或“地区”)。
3、右键切片器→“报表连接”,勾选已创建的饼图所在工作表,确保图表与切片器同步响应。
五、利用下拉列表+INDIRECT函数切换数据系列
当需在多个独立数据组间切换(如Q1/Q2/Q3销售额),可通过下拉菜单控制图表加载不同命名区域,实现离散式动态切换。
1、在空白单元格(如E1)设置数据验证:允许“序列”,来源为 Q1,Q2,Q3。
2、分别为各季度数据定义名称,如 Q1_Data 引用 =Sheet1!$B$2:$B$5。
3、新建名称 ActiveSeries,引用位置设为:=INDIRECT(E1&"_Data")。
4、回到饼图“选择数据”,将系列值修改为:=Sheet1!ActiveSeries。










