我有一个月度数据可以追溯到近十年的电子表格,我正在为这个和其他表格创建一个仪表板。
我正在尝试过滤显示过去12个月数据的图表的数据表。我尝试使用getTime()或valueOf()在日期上使用数字范围过滤器,但是当我使用date.valueOf()设置最小值时,两者都拒绝构建过滤器(我假设因为大小)。我也使用viewWindow在下面的链接中尝试了解决方案,但是失败了。 Date Range Google Chart Tools
我知道可以使用可视化API完成此操作,但不幸的是我为此坚持使用Google Apps脚本。我正在尝试将一个数据表用于所有内容,但如果这是不可能的,我可以创建一个只有12行的单独数据表。我真的希望让用户加载自定义时间范围,但GAS中没有ChartRangeFilter。
答案 0 :(得分:2)
正如您所发现的,NumberRangeFilter并不适用于日期,而且Apps脚本目前不支持任何其他范围过滤器。我使用的一种解决方法是将日期转换为数字,并使用NumberRangeFilter过滤它们。例如," 2012年10月19日"可以转换为" 20121019"。
为了避免由于整个2012-1031和20121101之间的图形中的奇怪跳转,您需要在数字日期设置过滤器,但使用DataViewDefinition仅在图表中显示实际日期。
这是一段粗略的示例代码。第0列是实际日期,1是数字日期,2& 3是我想绘制的值。
var dateFilter = Charts.newNumberRangeFilter()
.setFilterColumnIndex(1)
.build();
var view = Charts.newDataViewDefinition()
.setColumns([0, 2, 3]);
var areaChart = Charts.newAreaChart()
.setDataViewDefinition(view)
.setStacked()
.setDimensions(800, 400)
.build();