Excel中如何基于行内嵌入值识别并绘制多时间序列(无需手动拆分数据)
Excel中如何基于行内嵌入值识别并绘制多时间序列(无需手动拆分数据)
嗨,这个需求我太懂了——手动拆分大数据集真的是噩梦!别担心,Excel里有不用手动整理数据的方法,靠名称管理器+散点图就能轻松搞定,我给你一步步拆解:
前提准备
先确保你的数据有明确表头(Time、Val_1、Val_2),数据区域比如是A1:C8(对应你给出的示例)。
方法一:适合所有Excel版本(用OFFSET+数组公式)
打开名称管理器:点击「公式」选项卡 → 「名称管理器」。
为每个系列定义动态范围:
点击「新建」,给Val_1=1的系列创建两个名称:- 名称:
Series_1_X(对应X轴的Time值)
引用位置:
输入完公式后,按=OFFSET($A$2,MIN(IF($B$2:$B$8=1,ROW($B$2:$B$8)-ROW($B$2)+1,999)),0,COUNTIF($B$2:$B$8,1),1)Ctrl+Shift+Enter确认(这是数组公式的要求,Excel 365/2021可直接回车)。 - 名称:
Series_1_Y(对应Y轴的Val_2值)
引用位置:
同样按数组公式的方式确认。=OFFSET($C$2,MIN(IF($B$2:$B$8=1,ROW($B$2:$B$8)-ROW($B$2)+1,999)),0,COUNTIF($B$2:$B$8,1),1)
用同样的逻辑,给Val_1=2的系列创建
Series_2_X和Series_2_Y,把公式里的=1改成=2就行。- 名称:
插入并配置散点图:
- 插入「带平滑线的散点图」(适合时间序列展示)。
- 右键图表 → 「选择数据」,点击「添加」:
- 系列名称:输入
Val_1=1(或直接引用B列的对应值) - X轴系列值:输入
=你的工作表名称!Series_1_X(比如=Sheet1!Series_1_X) - Y轴系列值:输入
=你的工作表名称!Series_1_Y
- 系列名称:输入
- 重复「添加」操作,把Val_1=2的系列也加进去。
方法二:适合Excel 365/2021(用FILTER函数更简单)
如果你用的是新版Excel,直接用FILTER函数定义动态范围,比OFFSET更直观:
Series_1_X的引用位置:=FILTER($A$2:$A$8,$B$2:$B$8=1)Series_1_Y的引用位置:=FILTER($C$2:$C$8,$B$2:$B$8=1)
后续添加其他系列的逻辑一样,把=1改成对应Val_1的值即可。
剩下的图表配置步骤和方法一完全相同。
额外提示
如果你的Val_1有几十上百个不同值,手动建名称太麻烦,可以写一段简单的VBA批量生成名称和图表系列,不过一般小数量的话,手动建几个就足够了。而且这些动态范围会自动识别新增的数据行,后续更新数据后图表会自动同步,完全不用再手动调整!
备注:内容来源于stack exchange,提问作者ljwobker
相关产品推荐
相关产品推荐

