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