Google 按双重选择标准自定义的工作表中的动态图表
Dynamic Chart in Google Sheets Customized by Dual Selection Criteria
我目前正在尝试在 Google 表格中为跟踪器创建一个动态图表系统。现在,第一个图表是我如何设置的,指向 sheet“历史”。当我 select 仪表板上的下拉菜单中的内容时,它会更新图表以显示基于日期的值。
以下是我想要更改的方式:
我想创建一个单独的日期列,该列根据第二个下拉菜单进行更新。第二个菜单可以让我 select 日期范围,例如“过去 30 天”或“今年”或“7 天”或我想要配置的任何自定义日期范围。这样一来,历史测试选项卡中 A 列和 B 列中填充的数据将根据 2 selection 标准进行更新。所以我可以 select 值 3 和 7 天或值 2 和 1 年,图表会根据这些 select 离子自动更新。我确信我把它复杂化了,但希望我只是错过了一个让 met 轻松做到这一点的关键公式。
- 使用IF检查
D21
中设置的间隔(选项为Last 30 days
、7 days
和Last year
)。
- 对于每个间隔,您必须使用略有不同的 FILTER, in this case using DAYS。
- 想法是日期列和
B21
中的值对应的列都用同一个公式过滤和检索。
- 根据
B21
检索的值列返回 QUERY which uses SUBSTITUTE, ADDRESS and MATCH, as explained, for example, here。
公式:
=IF(Dashboard!D21="Last 30 days",
FILTER({QUERY(D:F,"SELECT "&SUBSTITUTE(ADDRESS(1,MATCH(Dashboard!B21,D1:F1,0)+3,4),1,"")),C:C},DAYS(TODAY(),C:C)<=30),
IF(Dashboard!D21="7 days",
FILTER({QUERY(D:F,"SELECT "&SUBSTITUTE(ADDRESS(1,MATCH(Dashboard!B21,D1:F1,0)+3,4),1,"")),C:C},DAYS(TODAY(),C:C)<=7),
IF(Dashboard!D21="Last year",
FILTER({QUERY(D:F,"SELECT "&SUBSTITUTE(ADDRESS(1,MATCH(Dashboard!B21,D1:F1,0)+3,4),1,"")),C:C},DAYS(TODAY(),C:C)<=365))))
我目前正在尝试在 Google 表格中为跟踪器创建一个动态图表系统。现在,第一个图表是我如何设置的,指向 sheet“历史”。当我 select 仪表板上的下拉菜单中的内容时,它会更新图表以显示基于日期的值。
以下是我想要更改的方式: 我想创建一个单独的日期列,该列根据第二个下拉菜单进行更新。第二个菜单可以让我 select 日期范围,例如“过去 30 天”或“今年”或“7 天”或我想要配置的任何自定义日期范围。这样一来,历史测试选项卡中 A 列和 B 列中填充的数据将根据 2 selection 标准进行更新。所以我可以 select 值 3 和 7 天或值 2 和 1 年,图表会根据这些 select 离子自动更新。我确信我把它复杂化了,但希望我只是错过了一个让 met 轻松做到这一点的关键公式。
- 使用IF检查
D21
中设置的间隔(选项为Last 30 days
、7 days
和Last year
)。 - 对于每个间隔,您必须使用略有不同的 FILTER, in this case using DAYS。
- 想法是日期列和
B21
中的值对应的列都用同一个公式过滤和检索。 - 根据
B21
检索的值列返回 QUERY which uses SUBSTITUTE, ADDRESS and MATCH, as explained, for example, here。
公式:
=IF(Dashboard!D21="Last 30 days",
FILTER({QUERY(D:F,"SELECT "&SUBSTITUTE(ADDRESS(1,MATCH(Dashboard!B21,D1:F1,0)+3,4),1,"")),C:C},DAYS(TODAY(),C:C)<=30),
IF(Dashboard!D21="7 days",
FILTER({QUERY(D:F,"SELECT "&SUBSTITUTE(ADDRESS(1,MATCH(Dashboard!B21,D1:F1,0)+3,4),1,"")),C:C},DAYS(TODAY(),C:C)<=7),
IF(Dashboard!D21="Last year",
FILTER({QUERY(D:F,"SELECT "&SUBSTITUTE(ADDRESS(1,MATCH(Dashboard!B21,D1:F1,0)+3,4),1,"")),C:C},DAYS(TODAY(),C:C)<=365))))