このガイドでは、Google Sheets API を使用してスプレッドシートにピボット テーブルを作成する方法とその理由について説明します。
ピボット テーブルとは
ピボット テーブルを使用すると、スプレッドシート内のデータを自動的に集計、並べ替え、カウント、平均化できます。また、集計結果を新しい表に表示することもできます。ピボット テーブルは、ソースデータセットに対する一種のクエリとして機能します。このソースデータはスプレッドシート内の別の場所にあり、ピボット テーブルにはデータの処理済みビューが表示されます。
たとえば、次のような販売データセットについて考えてみましょう。
A | B | C | D | E | F | G | |
1 | アイテムのカテゴリ | モデル番号 | 費用 | 数量 | 地域 | 営業担当者 | 発送日 |
2 | ホイール | W-24 | $20.50 | 4 | 西 | Beth | 2016 年 3 月 1 日 |
3 | ドア | D-01X | $15.00 | 2 | 南 | Amir | 2016 年 3 月 15 日 |
4 | エンジン | ENG-0134 | 10,000 円 | 1 | 北 | Carmen | 2016 年 3 月 20 日 |
5 | フレーム | FR-0B1 | $34.00 | 8 | 東 | ハンナ | 2016 年 3 月 12 日 |
6 | パネル | P-034 | $6.00 | 4 | 北 | Devyn | 2016 年 4 月 2 日 |
7 | パネル | P-052 | 11.50 ドル | 7 | 東 | エリック | 2016 年 5 月 16 日 |
8 | ホイール | W-24 | $20.50 | 11 | 南 | Sheldon | 2016 年 4 月 30 日 |
9 | エンジン | ENG-0161 | $330.00 | 2 | 北 | ジェシー | 2016 年 7 月 2 日 |
10 | ドア | D-01Y | $29.00 | 6 | 西 | Armando | 2016 年 3 月 13 日 |
11 | フレーム | FR-0B1 | $34.00 | 9 | 南 | Yuliana | 2016 年 2 月 27 日 |
12 | パネル | P-102 | $3.00 | 15 | 西 | Carmen | 2016 年 4 月 18 日 |
13 | パネル | P-105 | $8.25 | 13 | 西 | ジェシー | 2016 年 6 月 20 日 |
14 | エンジン | ENG-0211 | $283.00 | 1 | 北 | Amir | 2016 年 6 月 21 日 |
15 | ドア | D-01X | $15.00 | 2 | 西 | Armando | 2016 年 7 月 3 日 |
16 | フレーム | FR-0B1 | $34.00 | 6 | 南 | Carmen | 7/15/2016 |
17 | ホイール | W-25 | $20.00 | 8 | 南 | ハンナ | 2016 年 5 月 2 日 |
18 | ホイール | W-11 | $29.00 | 13 | 東 | エリック | 2016 年 5 月 19 日 |
19 | ドア | D-05 | $17.70 | 7 | 西 | Beth | 2016 年 6 月 28 日 |
20 | フレーム | FR-0B1 | $34.00 | 8 | 北 | Sheldon | 2016 年 3 月 30 日 |
ピボット テーブルを使用して、各地域で販売された各モデル番号の数を示すレポートを作成できます。
このピボット テーブルの生成に使用されたソースコードについては、下記の例をご覧ください。
ピボット テーブルをスプレッドシートに配置すると、ユーザーはスプレッドシートの UI を使用して、概要の構造と詳細をインタラクティブに変更できます。
ピボット テーブルの操作
ピボット テーブルの定義は、シート上の 1 つのセルに関連付けられます。レンダリングされた外観は高さと幅の両方で多くのセルですが、プログラム的には 1 つのセル座標に配置されています。このセルは、レンダリングされたピボット テーブルの左上隅になり、その水平方向と垂直方向の範囲は定義によって決まります。
ピボット テーブルの追加
ピボット テーブルを追加するには、batchUpdate メソッドを使用して updateCells リクエストを指定します。このリクエストを使用すると、次のようにセルのコンテンツとしてPivotTableの定義を指定できます。
"updateCells": {
"rows": {
"values": [{
"pivotTable": MyPivotTable
},
"start": {
"sheetId": sheetId,
"rowIndex": 0,
"columnIndex": 0
},
"fields": "pivotTable"
}
これにより、MyPivotTable
で記述されたピボット テーブルが指定されたシートに配置され、左上はセル A1
になります。(ピボット テーブルの高さと幅は動的で、原点のみを指定します)。
PivotTable タイプでは、次の項目を指定できます。
- ソースデータ範囲
- ピボット テーブルの行を構成するデータを含む 1 つ以上のフィールド
- ピボット テーブルの列を構成するデータを含む 1 つ以上のフィールド
- フィルタ条件と集計条件
- ピボット テーブルのレイアウト
ピボット テーブルの変更と削除
ピボット テーブルの変更または削除に関する明示的なリクエストはありません。代わりに、別のセルの内容を含む updateCells リクエストを使用します。
- ピボット テーブルを変更するには、新しいピボット テーブルを追加する場合と同様に、変更した PivotTable 定義を作成し、その定義を使用してセルを更新します。
- ピボット テーブルを削除するには、空の値でセルを更新します。例については、ピボット テーブルを削除するのサンプルをご覧ください。
ユースケース
ピボット テーブルは、統計分析、ERP アプリケーション、財務レポートなど、さまざまな分野でさまざまな用途に使用できます。従来のピボット テーブルのユースケースには、次のような項目があります。
- 地域と四半期別の総売上
- 役職と地域別の平均給与
- サービスと時間帯別のインシデント数
ピボット テーブルの潜在的な用途は膨大であり、プログラムによって生成できる機能は強力です。インタラクティブなデータ探索をサポートし、特定の状況に合わせて調整されたピボット テーブルを生成できます。たとえば、次のような状況です。
- 過去 24 時間のインシデント データを調べる
- 現在選択されているアカウントに対応する集計データを表示/分析する
- 現在のユーザーが担当する地域の販売データを調べる
例
この例では、データセットからピボット テーブルを作成し、このページの冒頭に示した「地域別のモデル番号」レポートを生成します。その他の例については、ピボット テーブルのサンプル ページをご覧ください。