コーディング レベル: 初級
所要時間: 5 分
プロジェクトの種類: カスタム関数
目標
- ソリューションの機能を理解します。
- Apps Script サービスがソリューション内でどのように機能するかを理解します。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
チームメンバーのカスタマー サポート指標など、スプレッドシートの複数のシートに同様の構造化データがある場合、このカスタム関数を使用して各シートの概要を作成できます。このソリューションはカスタマー サポート チケットに重点を置いていますが、ニーズに合わせてカスタマイズできます。
仕組み
getSheetsData()
というカスタム関数は、シートの [Status] 列に基づいて、スプレッドシートの各シートのデータを要約します。このスクリプトは、ReadMe シートや Summary シートなど、集計に含めてはならないシートを無視します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- スプレッドシート サービス - 要約が必要なシートを取得し、指定された文字列に一致するアイテムの数をカウントします。次に、スクリプトは計算した情報を、スプレッドシート内でカスタム関数が呼び出された位置からの相対範囲に追加します。
前提条件
このサンプルを使用するには、次の前提条件を満たす必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要になる場合があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
下のボタンをクリックすると、「スプレッドシートのデータを集計する」カスタム関数スプレッドシートのコピーが作成されます。このソリューションの Apps Script プロジェクトは、スプレッドシートに接続されています。
コピーを作成
スクリプトを実行する
- コピーしたスプレッドシートの [概要] シートに移動します。
- セル
A4
をクリックします。getSheetsData()
関数はこのセルにあります。 - いずれかのオーナーシートに移動し、データを更新または追加します。次のような操作を試すことができます。
- サンプル チケット情報を含む新しい行を追加します。
- [Status] 列で、既存のチケットのステータスを変更します。
- [ステータス] 列の位置を変更します。たとえば、[Owner1] シートの [Status] 列を列 C から列 D に移動します。
- [Summary] シートに移動し、
getSheetsData()
がセルA4
から作成した更新されたサマリー テーブルを確認します。カスタム関数のキャッシュに保存された結果を更新するには、10 行目のチェックボックスをオンにする必要があります。Google は、パフォーマンスを最適化するためにカスタム関数をキャッシュに保存します。- 行を追加または更新すると、スクリプトによってチケットとステータスの数が更新されます。
- [Status] 列の位置を移動しても、スクリプトは新しい列インデックスに対して意図したとおりに動作します。
コードを確認する
このソリューションの Apps Script コードを確認するには、下の [ソースコードを表示] をクリックします。
ソースコードを表示
Code.gs
改造
カスタム関数は、必要に応じて編集できます。以下は、カスタム関数の結果を手動で更新するためのオプションです。
キャッシュに保存された結果を更新する
組み込み関数とは異なり、Google はパフォーマンスを最適化するためにカスタム関数をキャッシュに保存します。つまり、カスタム関数内で何か(計算中の値など)を変更しても、すぐには更新されない場合があります。関数の結果を手動で更新する手順は次のとおりです。
- [挿入] > [チェックボックス] をクリックして、空のセルにチェックボックスを追加します。
- チェックボックスを含むセルをカスタム関数のパラメータとして追加します(例:
getSheetsData(B11)
)。 - チェックボックスをオンまたはオフにして、カスタム関数の結果を更新します。
協力者
このサンプルは、Google Developer Experts の協力により Google が保守しています。