フィルタを使用すると、スプレッドシートを表示するときに表示されるデータの並べ替えやフィルタリングを行うことができます。フィルタによってスプレッドシートのデータ値が変更されることはありません。フィルタを使用して、情報を一時的に非表示にしたり、並べ替えたりできます。フィルタがオンになっていると、指定したフィルタ条件に一致するデータは表示されません。フィルタ表示を使用すると、さまざまな名前のフィルタを保存して、いつでも切り替えることができます。
フィルタのユースケースの例を次に示します。
- 特定の列を基準にデータを並べ替えます。たとえば、ユーザー レコードを姓で並べ替えます。
- 特定の条件を満たすデータを非表示にします。たとえば、2 年以上前のレコードをすべて非表示にします。
- 特定の値に一致するデータを非表示にします。たとえば、ステータスが「クローズ」の問題をすべて非表示にします。
基本フィルタ
スプレッドシートの BasicFilter
は、すべてのユーザーがスプレッドシートを表示するたびに適用されるデフォルトのフィルタです。スプレッドシートには、シートごとに 1 つの基本フィルタを設定できます。基本フィルタをオフにすると、オフにできます。フィルタとフィルタの設定がすべてスプレッドシートから削除されます。
同じフィルタを再度オンにする場合は、条件を再度設定する必要があります。
基本フィルタを管理する
基本フィルタを設定またはクリアするには、適切なリクエスト タイプで spreadsheets.batchUpdate
メソッドを使用します。
- 基本フィルタを設定するには、
SetBasicFilterRequest
メソッドを使用します。 - 基本フィルタをクリアするには、
ClearBasicFilterRequest
メソッドを使用します。
基本フィルタを一覧表示するには、spreadsheets.get
メソッドを使用して fields
URL パラメータを sheets/basicFilter
に設定します。次の spreadsheets.get
コードサンプルは、フィールド マスクを使用した Google スプレッドシートの URL を示しています。
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter)
フィルタ表示
FilterView
は名前付きフィルタであり、いつでもオンとオフを切り替えられます。スプレッドシートには複数のフィルタ表示を設定できますが、一度に適用できるフィルタ表示は 1 つのみです。
フィルタ表示の使用例を次に示します。
- データを表示するときに切り替えたいフィルタがいくつかあります。
- スプレッドシートに対する編集権限がないが、フィルタを適用したい。この場合は、自分だけに表示される一時的なフィルタ表示を作成できます。
スプレッドシートを共有するユーザーごとに、異なる方法でデータを表示する必要があります。適用するフィルタ表示を指定するには、スプレッドシートの URL で
spreadsheetId
とfilterViewId
を指定します。これを行うには、フィルタ表示の作成時にレスポンスで返されたfilterViewId
を使用します。次のコードサンプルは、フィルタ表示を含む Google スプレッドシートの URL を示しています。
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID
フィルタ表示を管理
フィルタ表示を作成、複製、変更、削除するには、適切なリクエスト タイプを指定して spreadsheets.batchUpdate
メソッドを使用します。
- フィルタ表示を作成するには、
AddFilterViewRequest
メソッドを使用します。 - フィルタ表示のコピーを作成するには、
DuplicateFilterViewRequest
メソッドを使用します。 - フィルタ表示のプロパティを変更するには、
UpdateFilterViewRequest
メソッドを使用します。 - フィルタ表示を削除するには、
DeleteFilterViewRequest
メソッドを使用します。
すべてのフィルタビューを一覧表示するには、spreadsheets.get
メソッドを使用して fields
URL パラメータを sheets/filterViews
に設定します。次の spreadsheets.get
コードサンプルは、フィールド マスクを使用した Google スプレッドシートの URL を示しています。
GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews)
フィルタ表現
次のコードサンプルは、FilterView
オブジェクトの JSON 表現を示しています。BasicFilter
オブジェクトは同じですが、filterViewId
フィールドと title
フィールドがなく、名前付き範囲を使用できない点が異なります。
{
"filterViewId": number,
"title": string,
"range": {
object(GridRange)
},
"namedRangeId": string,
"sortSpecs": [
{
object(SortSpec)
}
],
"criteria": {
string: {
object(FilterCriteria)
},
...
}
}
データの例
このドキュメントの残りの部分では、以下の販売データ表の例を参照します。
A | B | C | D | E | F | 1 階 | |
1 | アイテムのカテゴリ | モデル番号 | 費用 | 数量 | 諸国 | 営業担当者 | 発送日 |
2 | 観覧車 | W-24 | 20.50 ドル | 4 | 西 | ベス | 2016 年 3 月 1 日 |
3 | ドア | D-01X | $15.00 | 2 | 南 | アミル | 2016 年 3 月 15 日 |
4 | フレーム | FR-0B1 | $34.00 | 8 | 東 | ハンナ | 2016 年 3 月 12 日 |
5 | パネル | P-034 | $6.00 | 4 | 北 | デビン | 2016 年 3 月 15 日 |
6 | パネル | P-052 | 11.50 ドル | 7 | 東 | エリック | 2016 年 5 月 16 日 |
7 | 観覧車 | W-24 | 20.50 ドル | 11 | 南 | Sheldon | 2016 年 4 月 30 日 |
8 | エンジン | ENG-0161 | 330.00 ドル | 2 | 北 | ジェシー | 2016 年 7 月 2 日 |
並べ替えの仕様
フィルタには複数の並べ替え指定を含めることができます。これらの仕様によってデータの並べ替え方法が決まり、指定された順序で適用されます。SortSpec.dimensionIndex
属性は、並べ替えを適用する列インデックスを指定します。
次のコードサンプルは、並べ替えの指定を示しています。
[
{
"dimensionIndex": 3,
"sortOrder": "ASCENDING"
},
{
"dimensionIndex": 6,
"sortOrder": "ASCENDING"
}
]
販売データの例にこの仕様を適用すると、この仕様はまず「数量」で並べ替え、次に 2 行が同じ数量の場合は「発送日」で並べ替えます。
A | B | C | D | E | F | 1 階 | |
1 | アイテムのカテゴリ | モデル番号 | 費用 | 数量 | 諸国 | 営業担当者 | 発送日 |
2 | ドア | D-01X | $15.00 | 2 | 南 | アミル | 2016 年 3 月 15 日 |
3 | エンジン | ENG-0161 | 330.00 ドル | 2 | 北 | ジェシー | 2016 年 7 月 2 日 |
4 | 観覧車 | W-24 | 20.50 ドル | 4 | 西 | ベス | 2016 年 3 月 1 日 |
5 | パネル | P-034 | $6.00 | 4 | 北 | デビン | 2016 年 3 月 15 日 |
6 | パネル | P-052 | 11.50 ドル | 7 | 東 | エリック | 2016 年 5 月 16 日 |
7 | フレーム | FR-0B1 | $34.00 | 8 | 東 | ハンナ | 2016 年 3 月 12 日 |
8 | 観覧車 | W-24 | 20.50 ドル | 11 | 南 | Sheldon | 2016 年 4 月 30 日 |
フィルタ条件
FilterCriteria
メソッドは、基本フィルタまたはフィルタ表示で表示または非表示にするスプレッドシート データを決定します。各条件は、特定の列の値に依存します。フィルタ条件は、キーが列インデックス、値が条件であるマップとして指定します。
ブール値 condition
を使用して指定された条件の場合、値を表示するには条件を True
にする必要があります。この条件は hiddenValues
をオーバーライドしません。値が hiddenValues
の下にリストされている場合、その値との一致はすべて非表示になります。
次のコードサンプルは、フィルタ条件マップを示しています。
{
0: {
'hiddenValues': ['Panel']
},
6: {
'condition': {
'type': 'DATE_BEFORE',
'values': {
'userEnteredValue': '4/30/2016'
}
}
}
}
販売データの例にこの条件を適用すると、[Item Category] が [Panel] ではなく、[Ship Date] が 2016 年 4 月 30 日より前の行のみが表示されます。
A | B | C | D | E | F | 1 階 | |
1 | アイテムのカテゴリ | モデル番号 | 費用 | 数量 | 諸国 | 営業担当者 | 発送日 |
2 | 観覧車 | W-24 | 20.50 ドル | 4 | 西 | ベス | 2016 年 3 月 1 日 |
3 | ドア | D-01X | $15.00 | 2 | 南 | アミル | 2016 年 3 月 15 日 |
4 | フレーム | FR-0B1 | $34.00 | 8 | 東 | ハンナ | 2016 年 3 月 12 日 |
サンプル
次のコードサンプルは、フィルタビューを作成して複製し、上記の販売データの例を使用して複製したバージョンを更新する方法を示しています。