如何使用 Excel 中的按钮选择数据并绘制图表?

如何使用 Excel 中的按钮选择数据并绘制图表?

在我的 Excel 工作簿(即文件)中,我有七张温度表(周一、周二……周日)。这些数据以固定频率记录一整天。

现在我想创建一个工具来轻松查看这个时间序列数据。

我的想法是,我创建一个页面,比如 Index,其中包含所有这些工作表的名称列表,有一个图表对象,默认情况下显示来自工作表 Mon 的数据,还有一个按钮/或下拉列表,用于将 Mon 更改为任何名称(连接到工作表),并刷新图表以显示相应的数据。

我该如何处理这个问题?我只是一个非常基础的 Excel 用户,但我愿意学习这项技能。

答案1

由于您没有向我们提供有关工作表如何布局的详细信息,我假设您在每个日常工作表上的单元格中都有时间A2:A25 ,单元格中有温度,如下所示:B2:B25

输入周一、周二和周三的数据

在索引表上,输入

  • 在 中A1,“天”。 (这只是一个标签;与您在图像中显示的所需结果相同)。
  • 在 中B1,您可以下拉列出一周中各天的列表。
  • 在 中J1,“时间”。 (这只是一个标签,是可选的。)
  • 在 中K1,“Temp”。 (这只是一个标签,是可选的。)
  • 在 中L1。 =B1 & " Temp"这将是图表标题。
  • 在 中J2:J25,时间从 00:00 到 23:00。或者,如果某些工作表具有不同的“X”轴值(例如,如果某些天有 00:30 到 23:30),请输入
        =IF(INDIRECT($B$1&"!A"&ROW())<>"", INDIRECT($B$1&"!A"&ROW()), "")
        
    并向下J2拖动/填充到J25 (假设您始终有 24 个数据点)。您可能需要手动正确格式化(例如 )。这将访问时间数据(即hh:mmX轴标签)来自A索引日表的列,强制将空单元格视为空白而不是零(参见在 Excel 中引用空白单元格时显示空白)。
  • 在 中K2=IF(INDIRECT($B$1&"!B"&ROW())<>"", INDIRECT($B$1&"!B"&ROW()), #N/A)。这将从 B每日工作表之一的 列访问温度数据,用#N/A (“不可用”伪值)替换空单元格,这将导致相应的数据点不包含在图表中。选择K2并向下拖动/填充到K25。所选日期的温度数据将显示。

现在根据 Index 表创建图表J1:K25。单击图表标题,然后=Index!L1在公式栏中键入。然后只需选择您想要的日期Index!B1,当天数据的图表就会自动立即出现 — 无需按下按钮。

周一图表

周二图表

周三图表

缺少数据的样本结果:

周一缺少数据的图表

当然,单元格的选择是任意的。我使用了列 J, L 这样我就可以将它们与图表一起放在页面上。如果您愿意不是查看所选数据,使用列 AA, AC使它们不被看到 - 和/或隐藏辅助列。

答案2

这是一个 vba 宏,用于更新图表数据。没有错误检查,并且大多数名称都是为了更好地理解

Private Sub SetChart(sheetChrt as worksheet, sheetData as worksheet)
 With sheetChrt.ChartObjects(1).Chart.SeriesCollection(1)
   .XValues = sheetData.Range("A1:A10") '
   .Values = sheetData.Range("B1:B10")
 End With
End Sub

Public Sub Test1()
 with Thisworkbook
 SetChart .Sheets("MyChartSheet"), .Sheets("MyDataSheet")
 end with
End Sub

相关内容