スプレッドシートで大量のデータを扱う場合、特定の条件に合致するデータを素早く取得したいことがあります。その際に便利なのが「フィルタ機能」です。
フィルタ機能とは?
フィルタ機能は、スプレッドシートのデータを特定の条件に合致するものだけに絞り込む機能です。
例えば、ある列の値が「A」である行だけを表示したり、ある範囲の値が100以上の行だけを表示したりすることができます。
フィルタ機能の使い方
- フィルタ対象の範囲を選択します。
- メニューバーの「データ」→「フィルター」→「フィルターの表示」を選択します。
- 表示されたフィルターオプションで条件を指定します。
- 条件を満たす行だけが表示されます。
GASでのフィルタ機能の実行
GASを使ってフィルタ機能を実行することもできます。以下は、A列の値が「完了」である行をフィルタで非表示にする例です。
function onFilter() {
const criteria = SpreadsheetApp.newFilterCriteria()
.setHiddenValues(['完了'])
.build();
spreadsheet.getActiveSheet().getFilter().setColumnFilterCriteria(1, criteria);
};
フィルタされました!
[rml_read_more]
もしフィルタがない場合は実行するとエラーになってしまいますので、エラーにならない処理を入れておくほうが望ましいかと思います。
以下のようにすれば、A2から末尾の行までフィルタを設定できますので、
sh.getRange(2, 1, ss.getLastRow(), ss.getLastColumn()).createFilter();
以下のようにすると、一旦フィルタを解除して、再フィルタを設定できます。
if (filter == null) {
} else {
sh.getFilter().remove();
}
sh.getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).createFilter();
まとめ
スプレッドシートのフィルタ機能は、データの絞り込みに非常に便利です。GASを使って自動化することもできますので、ぜひ活用してみてください。