Class FilterCriteria

フィルタ条件

このクラスは、既存のフィルタに関する情報を取得したり、条件をコピーしたりするために使用します。

一般的な使用例

条件をコピーする

次のサンプルでは、範囲 A1:C20 に適用されるフィルタを取得し、列 C に適用される条件を取得して、条件を列 B にコピーします。
const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
// Copies the filter criteria applied to column C.
const filter = range.getFilter();
const criteria = filter.getColumnFilterCriteria(3).copy().build();
// Applies the copied criteria to column B. The copied criteria overwrites any
// existing criteria on column B.
filter.setColumnFilterCriteria(2, criteria);

フィルタによって非表示になった値を取得する

次のサンプルは、指定された範囲に適用されるフィルタを取得し、フィルタによって非表示になる列 B の値をログに記録します。
const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
const filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

メソッド

メソッド戻り値の型概要
copy()FilterCriteriaBuilderこのフィルタ条件をコピーし、別のフィルタに適用できる条件ビルダーを作成します。
getCriteriaType()BooleanCriteria条件のブール値型(CELL_EMPTY など)を返します。
getCriteriaValues()Object[]ブール条件の引数の配列を返します。
getHiddenValues()String[]フィルタによって非表示にされた値を返します。
getVisibleBackgroundColor()Colorフィルタ条件として使用される背景色を返します。
getVisibleForegroundColor()Colorフィルタ条件として使用される前景色を返します。
getVisibleValues()String[]ピボット テーブル フィルタに表示される値を返します。

詳細なドキュメント

copy()

このフィルタ条件をコピーし、別のフィルタに適用できる条件ビルダーを作成します。

この方法は、任意のタイプのフィルタで使用できます。シートフィルタを使用している場合は、条件を別の列にコピーできます。

const ss = SpreadsheetApp.getActiveSheet();
const filter = ss.getFilter();
// Makes a copy of the filter criteria applied to column C.
const criteria = filter.getColumnFilterCriteria(3).copy().build();
// Applies the copied criteria to column B. The copied criteria overwrites any
// existing criteria on column B.
filter.setColumnFilterCriteria(2, criteria);

戻る

FilterCriteriaBuilder - このフィルタ条件に基づくフィルタ条件ビルダー。


getCriteriaType()

条件のブール値型(CELL_EMPTY など)を返します。ブール条件の種類については、BooleanCriteria 列挙型をご覧ください。

多くの場合、この方法は、既存の条件を置き換えることなく、ブール値の条件をフィルタに追加するために使用されます。

この方法は、どの種類のフィルタにも使用できます。フィルタ条件がブール条件でない場合は、null を返します。

const ss = SpreadsheetApp.getActiveSheet();
// Gets the filter on the active sheet.
const filter = ss.getFilter();
// Gets the criteria type and returns a string representing the criteria type
// object.
const criteriaType =
    filter.getColumnFilterCriteria(2).getCriteriaType().toString();
// Logs the criteria type.
console.log(criteriaType);

戻る

BooleanCriteria - ブール値条件のタイプ。条件がブール値条件でない場合は null


getCriteriaValues()

ブール条件の引数の配列を返します。一部のブール条件のタイプには引数がなく、空の配列(CELL_NOT_EMPTY など)を返します。

多くの場合、この方法は、既存の条件を置き換えることなく、ブール値の条件をフィルタに追加するために使用されます。

  • ブール値の条件タイプを取得するには、getCriteriaType() を使用します。
  • 条件の種類と条件値を使用してフィルタ条件を作成または変更するには、FilterCriteriaBuilder.withCriteria(criteria, args) をご覧ください。

    この方法は、どの種類のフィルタにも使用できます。

    const ss = SpreadsheetApp.getActiveSheet();
    const filter = ss.getFilter();
    // Gets the values of the boolean criteria and logs them. For example, if the
    // boolean condition is whenNumberGreaterThan(10), then the logged value is 10.
    const criteriaValues = filter.getColumnFilterCriteria(2).getCriteriaValues();
    console.log(criteriaValues);

    戻る

    Object[] - ブール値の条件タイプに適した引数の配列。引数の数と型が、FilterCriteriaBuilder クラスの対応する when...() メソッドと一致している。


getHiddenValues()

フィルタによって非表示にされた値を返します。

この条件は、デフォルトのシートタイプである Grid シートのフィルタで使用します。他のタイプのフィルタに対してこのメソッドを呼び出すと、null が返されます。

const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
const filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
const filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

戻る

String[] - フィルタで非表示にする値の配列。


getVisibleBackgroundColor()

フィルタ条件として使用される背景色を返します。この背景色のセルは引き続き表示されます。

この条件は、デフォルトのシートタイプである Grid シートのフィルタで使用します。他のタイプのフィルタに対してこのメソッドを呼び出すと、null が返されます。

const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
// Logs the background color that column B is filtered by as a hexadecimal
// string.
const filter = range.getFilter();
const color = filter.getColumnFilterCriteria(2)
                  .getVisibleBackgroundColor()
                  .asRgbColor()
                  .asHexString();
console.log(color);

戻る

Color - フィルタ条件として使用される背景色。


getVisibleForegroundColor()

フィルタ条件として使用される前景色を返します。この前景色のセルは引き続き表示されます。

この条件は、デフォルトのシートタイプである Grid シートのフィルタで使用します。他のタイプのフィルタに対してこのメソッドを呼び出すと、null が返されます。

const ss = SpreadsheetApp.getActiveSheet();
const range = ss.getRange('A1:C20');
// Logs the foreground color that column B is filtered by as a hexadecimal
// string.
const filter = range.getFilter();
const color = filter.getColumnFilterCriteria(2)
                  .getVisibleForegroundColor()
                  .asRgbColor()
                  .asHexString();
console.log(color);

戻る

Color - フィルタ条件として使用される前景色。


getVisibleValues()

ピボット テーブル フィルタに表示される値を返します。

この条件は、データベースに接続されていないピボット テーブルのフィルタにのみ適用されます。他のタイプのフィルタの場合は空の配列を返します。

const ss = SpreadsheetApp.getActiveSheet();
// Gets the first pivot table on the sheet, then gets the visible values of its
// first filter.
const pivotTable = ss.getPivotTables()[0];
const pivotFilterValues =
    pivotTable.getFilters()[0].getFilterCriteria().getVisibleValues();
// Logs the visible values.
console.log(pivotFilterValues);

戻る

String[] - ピボット テーブル フィルタに表示される値の配列。