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