Class FilterCriteria

FilterCriteria

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

一般的な用途

条件をコピー

次のサンプルでは、範囲 A1:C20 に適用されるフィルタを取得し、列 C に適用される条件を取得して、条件を列 B にコピーします。
let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
// Copies the filter criteria applied to column C.
let filter = range.getFilter();
let 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 の値をログに記録しています。
let ss = SpreadsheetApp.getActiveSheet();
let range = ss.getRange("A1:C20");
let filter = range.getFilter();
// Gets the filter criteria applied to column B, then gets the hidden values.
let filterCriteria = filter.getColumnFilterCriteria(2).getHiddenValues();
// Logs the hidden values.
console.log(filterCriteria);

Methods

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

詳細なドキュメント

copy()

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

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

let ss = SpreadsheetApp.getActiveSheet();
let filter = ss.getFilter();
// Makes a copy of the filter criteria applied to column C.
let 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 を返します。

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

リターン

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


getCriteriaValues()

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

多くの場合、この方法では、既存の条件を置き換えることなく、ブール条件条件をフィルタに追加します。

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

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

    let ss = SpreadsheetApp.getActiveSheet();
    let 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.
    let criteriaValues = filter.getColumnFilterCriteria(2).getCriteriaValues();
    console.log(criteriaValues);

    リターン

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


getHiddenValues()

フィルタで非表示になっている値を返します。

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

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

リターン

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


getVisibleBackgroundColor()

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

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

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

リターン

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


getVisibleForegroundColor()

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

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

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

リターン

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


getVisibleValues()

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

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

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

リターン

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