2

ほぼ 10 年前の月次データを含むスプレッドシートがあり、このシートと同様の他のシートのダッシュボードを作成しています。

過去 12 か月のデータを表示するグラフのデータ テーブルをフィルター処理しようとしています。getTime() または valueOf() を使用して日付に数値範囲フィルターを使用しようとしましたが、date.valueOf() を使用して最小値を設定すると、どちらもフィルターの作成を拒否しました (サイズのためだと思います)。viewWindow を使用して、以下のリンクの解決策も試しましたが、失敗しました。 日付範囲 Google チャート ツール

視覚化 API を使用してこれを実行できることはわかっていますが、残念ながら、これには Google Apps Script を使用しています。すべてに 1 つのデータ テーブルを使用しようとしていますが、これが不可能な場合は、12 行だけの別のデータ テーブルを作成できます。ユーザーがカスタムの時間範囲をロードできるようにしたいと本当に思っていましたが、GAS には ChartRangeFilter がありません。

4

1 に答える 1

2

お気づきのとおり、NumberRangeFilterは日付では機能せず、AppsScriptは現在他の範囲フィルターをサポートしていません。私が採用した回避策の1つは、日付を数値に変換し、NumberRangeFilterを使用してそれらをフィルタリングすることです。たとえば、「2012年10月19日」は「20121019」に変換できます。

20121031から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();
于 2012-10-19T21:20:44.383 に答える