このガイドでは、Google Sheets API を使用してスプレッドシートにピボット テーブルを作成する方法と、その理由について説明します。
ピボット テーブルとは
ピボット テーブルは、スプレッドシート内のデータを要約する方法を提供します。データの集計、並べ替え、カウント、平均化を自動的に行い、その結果を新しいテーブルに表示します。ピボット テーブルは、ソース データセットに対する一種のクエリとして機能します。このソースデータはスプレッドシート内の別の場所に存在し、ピボット テーブルは処理されたデータのビューを表示します。
たとえば、次の販売データセットについて考えてみましょう。
| A | B | C | D | E | F | G | |
| 1 | アイテムのカテゴリ | モデル番号 | 費用 | 在庫数 | リージョン | 営業担当者 | 発送日 |
| 2 | ホイール | W-24 | $20.50 | 4 | 西 | Beth | 3/1/2016 |
| 3 | ドア | D-01X | $15.00 | 2 | 南 | Amir | 3/15/2016 |
| 4 | エンジン | ENG-0134 | $100.00 | 1 | 北 | Carmen | 3/20/2016 |
| 5 | フレーム | FR-0B1 | $34.00 | 8 | 東 | Hannah | 3/12/2016 |
| 6 | パネル | P-034 | $6.00 | 4 | 北 | Devyn | 4/2/2016 |
| 7 | パネル | P-052 | $11.50 | 7 | 東 | Erik | 5/16/2016 |
| 8 | ホイール | W-24 | $20.50 | 11 | 南 | Sheldon | 4/30/2016 |
| 9 | エンジン | ENG-0161 | $330.00 | 2 | 北 | Jessie | 7/2/2016 |
| 10 | ドア | D-01Y | $29.00 | 6 | 西 | Armando | 3/13/2016 |
| 11 | フレーム | FR-0B1 | $34.00 | 9 | 南 | Yuliana | 2/27/2016 |
| 12 | パネル | P-102 | $3.00 | 15 | 西 | Carmen | 4/18/2016 |
| 13 | パネル | P-105 | $8.25 | 13 | 西 | Jessie | 6/20/2016 |
| 14 | エンジン | ENG-0211 | $283.00 | 1 | 北 | Amir | 6/21/2016 |
| 15 | ドア | D-01X | $15.00 | 2 | 西 | Armando | 7/3/2016 |
| 16 | フレーム | FR-0B1 | $34.00 | 6 | 南 | Carmen | 7/15/2016 |
| 17 | ホイール | W-25 | $20.00 | 8 | 南 | Hannah | 5/2/2016 |
| 18 | ホイール | W-11 | $29.00 | 13 | 東 | Erik | 5/19/2016 |
| 19 | ドア | D-05 | $17.70 | 7 | 西 | Beth | 6/28/2016 |
| 20 | フレーム | FR-0B1 | $34.00 | 8 | 北 | Sheldon | 3/30/2016 |
ピボット テーブルを使用して、各地域で販売されたモデル番号の数を表示するレポートを作成できます。

このピボット テーブルの生成に使用したソースコードについては、下記の 例のセクションをご覧ください。
ピボット テーブルがスプレッドシートに配置されると、ユーザーは Sheets UI を使用して、集計の構造と詳細をインタラクティブに変更できます。
ピボット テーブルを使用する
ピボット テーブルの定義は、シート上の 1 つのセルに関連付けられています。レンダリングされた外観は高さと幅の両方で多くのセルになりますが、プログラムでは 1 つのセルの座標に配置されます。このセルは、レンダリングされたピボット テーブルの左上隅になり、水平方向と垂直方向の範囲はその定義によって決まります。
ピボット テーブルを追加する
ピボット テーブルを追加するには、 batchUpdate メソッドを使用して、 updateCells リクエストを指定します。このリクエストを使用して、次のように PivotTable 定義をセルのコンテンツとして指定します。
{
"updateCells": {
"rows": {
"values": [
{
"pivotTable": "MyPivotTable"
}
],
"start": {
"sheetId": "sheetId",
"rowIndex": 0,
"columnIndex": 0
},
"fields": "pivotTable"
}
}
}
これにより、MyPivotTable で記述されたピボット テーブルが指定されたシートに配置され、左上隅がセル A1 になります。(ピボット テーブルの高さと幅は動的です。原点のみを指定します)。
- ソースデータの範囲
- ピボット テーブルの行を構成するデータを含む 1 つ以上のフィールド
- ピボット テーブルの列を構成するデータを含む 1 つ以上のフィールド
- フィルタリングと集計の条件
- ピボット テーブルのレイアウト
ピボット テーブルを変更、削除する
ピボット テーブルを変更または削除する明示的なリクエストはありません。代わりに、異なるセルコンテンツで an updateCells リクエストを使用します。
- ピボット テーブルを変更するには、変更された PivotTable 定義を作成し、新しいピボット テーブルを追加するのと同様に、それを使用してセルを更新します。
- ピボット テーブルを削除するには、セルを空の値で更新します。例については、 ピボット テーブル を削除するサンプルをご覧ください。
ユースケース
ピボット テーブルは、統計分析、ERP アプリケーション、財務報告など、幅広い分野でさまざまな用途に使用できます。ピボット テーブルの一般的なユースケースには、次のようなものがあります。
- 地域別、四半期別の売上合計
- 役職別、勤務地別の平均給与
- 商品別、時間帯別のインシデント数
ピボット テーブルの潜在的な用途は多岐にわたり、プログラムで生成できる機能は強力です。 たとえば、次のような特定の状況に合わせてカスタマイズされた、インタラクティブな探索をサポートするピボット テーブルを生成できます。
- 過去 24 時間のインシデント データを探索する
- 選択したアカウントに対応する集計データを表示または分析する
- 現在のユーザーが所属するテリトリーの販売データを調べる
例
この例では、データセットからピボット テーブルを作成して、このページの冒頭で説明した「地域別のモデル番号」レポートを作成します。その他の 例については、ピボット テーブル サンプルページをご覧ください。