我正在尝试创建一个折线图,可以在其中使用下拉菜单选择开始日期和结束日期(看到的数据将动态变化以反映这些日期)。目前,我的数据如下:
Date (Total Funding Before) (Total Funding During) (Total Funding After)
8/2017 150 160 150
9/2017 160 160 160
10/2017 170 170 150
11/2017 180 180 170
12/2017 190 180 160
谁能给我关于如何创建它的见识?
答案 0 :(得分:4)
是的,有可能:D。
有了一些动态范围和足够的耐心,您可以创建类似以下结果的结果:
分步指南:
首先,我们将整个表制作为“ Excel表”。转到“首页”->“格式化为表格”。
下一部分,我们需要创建几个“命名范围”。转到:“公式”->“名称管理器”->“新建...”
我们将开始日期设为“命名范围”。我将其命名为“ Start_Date”。并且它引用单元格$B$3
。 我的工作表名称为“ Sheet1”。
我们对“结束日期”执行完全相同的操作。我们将其引用到下面的单元格$ B $ 4。
然后,我们为“日期”列创建一个名称范围。我们将范围命名为“ Dates
”。检查“引用:”的格式是否为“ = {TableX[Column Name]
”。在我们的情况下,=Table1[Date]
。注意,名称管理器不使用“ B7:B16”,而是对表列区域的引用。 最后一步非常重要!,因为我们希望使所有引用动态化。
创建开始日期和结束日期的下拉列表的时间。
转到:“数据”->“数据验证”->选择:“列表”->“源:” =Dates
,这是我们在上一步中命名的范围。
创建X轴动态范围的时间。我将其命名为“ XAxis
”
=OFFSET(Sheet1!$B$7,MATCH(Start_Date,Dates,0)-1,0, MATCH(End_Date,Dates,0)- MATCH(Start_Date,Dates,0)+1,1)
此公式将搜索第一行中第一个日期(Start_Date
)的位置。然后它将看到结束日期的位置(End_Date
)。这两个将共同创造我们需要的范围。 我使用“ ;
”作为分隔符,而美国使用“ ,
”作为分隔符。
现在,我们创建所需的所有Y范围。我们要绘制的每个系列中的一个。
我们从“之前的总资金”列开始。我将其命名为:YTotalFundingBefore
并应用以下公式。
=OFFSET(XAxis,0,1)
因此,我们使用与XAxis相同的范围,并将其向右偏移一列。
我们对以下两个系列进行相同的操作。
关于创建一个“名称”范围的每个新系列的通知,我们将更改列偏移量。因此,最后一个我命名为“ YTotalFundingAfter
”的系列和公式几乎相同,除了 3
。
=OFFSET(XAxis,0,3)
是将这些范围应用于图形的时间。我选择整个表格并创建一个折线图。然后,我选择第一个图表系列:“之前的总资金”。在编辑栏中(图片中标记为黄色),我需要更改引用。
在这里我想给个窍门以节省一些时间。
当我重写公式时,我会这样开始……因为命名范围将自动出现(如您在图片中所见):
=SERIES(Sheet1!$C$6,Xaxis,YTotalFundingBefore,1)
然后,在所有变量的前面添加工作表名称。在我的情况下为“ Sheet1”。完整的公式将是:
=SERIES(Sheet1!$C$6,Sheet1!Xaxis,Sheet1!YTotalFundingBefore,1)
=SERIES(HeaderCell , XAxis Range , Y-Axis Range , Serie Number)
然后我们按Enter。
其他系列也一样,所以第二个是:
=SERIES(Sheet1!$D$6,Sheet1!Xaxis,Sheet1!YTotalFundingDuring,2)
与最后一场同样。 注意,我更改了标题单元格($E$6)
和serienumber(3
):
=SERIES(Sheet1!$E$6,Sheet1!Xaxis,Sheet1!YTotalFundingAfter,3)
最后,我们有了一个基于开始和结束日期值的动态图。
使用表的好处是,当添加新行(日期)时,范围将自动将其选中,并且将下拉列表也选中。在下面的图片中,我添加了两行用于演示。
此设置有一个重要的缺点。当用户应用日期范围(2017-08)中的整个第一个日期时, AND 范围2018-07,图表系列将删除名称范围,并使用如下绝对值:(=SERIES(Sheet1!$E$6,Sheet1!$B$7:$B$18,Sheet1!$C$7:$C$18,1)
)。我的解决方案是在日期范围的开头增加一个或两个额外的日期。我们可能永远不会使用的日期,因此永远不会使用完整的日期范围。