【问题标题】:Excel: filtering a time series graphExcel:过滤时间序列图
【发布时间】:2010-12-27 13:43:12
【问题描述】:

我的数据如下所示:

ID      | Location | Attendees | StartDate | EndDate
---------------------------------------------
Event1  | Bldg 1   | 10        | June 1    | June 5
Event2  | Bldg 2   | 15        | June 3    | June 6
Event3  | Bldg 1   | 5         | June 3    | June 10

我想创建一个时间序列图,显示每个给定日期在该日期有多少活动(即开始但尚未结束)。例如,6 月 1 日有 1 个活动事件,6 月 4 日有 4 个活动活动。

这应该很简单,只需创建一个新范围,其中我的第一列由连续日期组成,第二列由如下公式组成(我在此示例中硬编码 6 月 8 日):

=COUNTIFS(Events[StartDate],"<=6/8/2009", Events[EndDate],">6/8/2009")

但是,挑战在于我希望能够根据各种标准动态过滤时间序列图。例如,我希望能够在仅针对 Bldg 1 中的事件查看上述时间序列之间快速切换;或参加人数超过 10 人的活动。我至少有 10 个不同的条件可以过滤。

最好的方法是什么? Excel 是否有内置方法来执行此操作,还是我应该在 VBA 中编写过滤代码?

【问题讨论】:

  • 可能应该在 Superuser.com 上......但尝试将“

标签: vba excel


【解决方案1】:

除此之外,我的回答与编程无关:这是使用数据透视表的主要示例。使用它来显示合并的数据,例如每天。然后,您可以随意使用过滤。

您的问题正是数据透视表的用途。

【讨论】:

  • 谢谢 Marco -- 我试过了,但不知道怎么做:我在“行标签”中输入 StartDate,然后在“值”中输入“ID 计数”,但这只是给了我在那个日期开始了多少活动。我需要弄清楚的数字是[迄今为止开始的事件计数] - [迄今为止完成的事件计数]。这在数据透视表中可行吗?
  • 好的。现在我发现我误解了您的要求。我认为您使用 =COUNTIFS() 的方法还不错。但是 =COUNTIFS() 忽略过滤器。这是你的问题,对吧?使用考虑过滤器的公式,可以用 =SUBTOTAL() 来完成。结合 =SUMPRODUCT(),您可以使用 =COUNTIFS() 中的过滤。也许值得一试。
  • 只要谷歌搜索“countif subtotal”,因为许多其他用户已经尝试在 =SUBTOTAL() 中模拟 =COUNTIF()。
  • 谢谢马可!你正确理解了我的问题。我会试试你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-07
  • 1970-01-01
  • 2018-11-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多