スキルアップを始める

【GAS】ワンクリック自動フィルタ機能を実行する方法|.createFilter()

GAS(GoogleAppsScript)
メルマガ購読できます

簡単1ステップ!届いたメールの「フォローを確認」クリックでメルマガ登録!一緒にスキルアップを目指しましょう!

スプレッドシートで大量のデータを扱う場合、特定の条件に合致するデータを素早く取得したいことがあります。その際に便利なのが「フィルタ機能」です。

フィルタ機能とは?

フィルタ機能は、スプレッドシートのデータを特定の条件に合致するものだけに絞り込む機能です。

例えば、ある列の値が「A」である行だけを表示したり、ある範囲の値が100以上の行だけを表示したりすることができます。

フィルタ機能の使い方

  1. フィルタ対象の範囲を選択します。
  2. メニューバーの「データ」→「フィルター」→「フィルターの表示」を選択します。
  3. 表示されたフィルターオプションで条件を指定します。
  4. 条件を満たす行だけが表示されます。

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を使って自動化することもできますので、ぜひ活用してみてください。

Kindle Unlimited 会員は無料で購読できます
購読はこちら
Kindle Unlimited 会員は無料で購読できます
購読はこちら