コーディング レベル: 初級
期間: 5 分
プロジェクト タイプ: カスタム関数
目標
- ソリューションの機能について理解する。
- ソリューション内で Apps Script サービスが果たす役割について理解する。
- スクリプトを設定する。
- スクリプトを実行する。
このソリューションについて
スプレッドシートの複数のシートに、チームメンバーのカスタマー サポート指標など、同様の構造化データがある場合は、このカスタム関数を使用して各シートの概要を作成できます。このソリューションはカスタマー サポート チケットに焦点を当てていますが、ニーズに合わせてカスタマイズできます。

仕組み
カスタム関数 getSheetsData() は、シートの [ステータス] 列に基づいて、スプレッドシートの各シートのデータを集計します。スクリプトは、[ReadMe] シートや [概要] シートなど、集計に含める必要のないシートを無視します。
Apps Script サービス
このソリューションでは、次のサービスを使用します。
- スプレッドシート サービス: 集計する必要があるシート を取得し、指定した文字列に一致するアイテムの数を カウントします。次に、スクリプトは、計算された情報を、スプレッドシートでカスタム関数が呼び出された場所を基準とした範囲に追加します。
前提条件
このサンプルを使用するには、次の前提条件を満たす必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
- インターネットにアクセスできるウェブブラウザ。
スクリプトを設定する
[スプレッドシート データの集計カスタム関数] スプレッドシートのコピーを作成するには、次のボタンをクリックします。
このソリューションの Apps Script プロジェクトは、スプレッドシートに添付されています。
スクリプトを実行する
- コピーしたスプレッドシートで、[概要] シートに移動します。
- セル
A4をクリックします。このセルにはgetSheetsData()関数があります。 - オーナーシートのいずれかに移動し、シートのデータを更新または追加します。次のような操作を試すことができます。
- サンプル チケット情報を含む新しい行を追加します。
- [ステータス] 列で、既存のチケットのステータスを変更します。
- [ステータス] 列の位置を変更します。たとえば、[Owner1] シートで、[ステータス] 列を C 列から D 列に移動します。
- [概要] シートに移動し、
getSheetsData()がセルA4から作成した更新された概要表を確認します。カスタム関数のキャッシュされた結果を更新するには、10 行目のチェックボックス をオンにする必要がある場合があります。キャッシュされた結果を更新する Google は、パフォーマンスを最適化するためにカスタム関数をキャッシュします。- 行を追加または更新すると、スクリプトによってチケット数とステータス数が更新されます。
- [ステータス] 列の位置を移動した場合でも、スクリプトは新しい列インデックスで意図したとおりに動作します。
コードを確認する
このソリューションの Apps Script コードを確認するには、 [ソースコードを表示]をクリックします:
ソースコードを表示
Code.gs
修正
ニーズに合わせて、カスタム関数を自由に編集できます。カスタム関数の結果を手動で更新するオプションの追加を表示するには、[キャッシュされた結果を更新] をクリックします。
キャッシュされた結果を更新
組み込み関数とは異なり、Google はパフォーマンスを最適化するためにカスタム関数をキャッシュします。つまり、計算される値など、カスタム 関数内で何かを変更しても、すぐに更新が強制されない可能性があります。関数の結果を手動で更新する手順は次の とおりです。
- [挿入] [>] [チェックボックス] をクリックして、空のセルにチェックボックスを追加します。
- チェックボックスを含むセルをカスタム関数のパラメータとして追加します
(例:
getSheetsData(B11))。 - チェックボックスをオンまたはオフにして、カスタム関数の結果を更新します。
寄稿者
このサンプルは、Google デベロッパー エキスパートの協力のもと、Google によって管理されています。