=GPT_CLASSIFYでGoogle Sheetsのデータを分類:ラベルと信頼度を1つの数式で取得
Google Sheetsの新数式=GPT_CLASSIFYで、データ分類を自動化しましょう。独自のカテゴリの指定、信頼度スコアの取得、1回の呼び出しで最大100セルの処理、テキスト数式の約10分の1のコストで動く数式の使い方を解説します。
サポートチケット800件を「Bug」「Feature」「Question」に手作業で振り分けるには、半日かかります。汎用のAIプロンプトでやれば早く済みますが、今度は同じ列に「bug report」「Bug.」「It’s a bug」が混在してしまいます。私たちが作ったのは、この2つの問題を同時に解決する、Google Sheetsでデータを分類するための数式です。
=GPT_CLASSIFYは今週、GPT Workspaceの新機能としてリリースされました。GPT Workspaceは、AIをDocs、Sheets、Slides、Gmailの中に直接組み込むChrome拡張機能で、Google Workspaceアドオンでもあります。この数式は、セルまたは範囲とカテゴリのリストを受け取り、あなたが指定したラベルのどれか1つを、オプションで信頼度スコアと一緒に返します。
この記事では、構文、4つの出力モード、カテゴリの説明文で精度を上げる方法、そして料金を取り上げます。SheetsのAI数式が初めての方は、まずGoogle SheetsでAIを使う方法のガイドに目を通してから、またこのページに戻ってきてください。
Google Sheetsのデータ分類に、なぜ専用の数式が必要なのか
もちろん、=GPT("Classify this ticket as Bug, Feature or Question: " & A2)のような数式でも、分類はできていました。たいていは意図どおりに動きます。
問題は、テキストモデルは「書く」ために作られたものであって、「選ぶ」ために作られたものではないという点です。ピリオドを付け足したり、「Feature」を「Feature request」と書き換えたり、セルの中で自分の考えを説明し始めたりします。その結果COUNTIFは動かなくなり、頼んでもいないラベルの後始末に10分を費やすはめになります。
=GPT_CLASSIFYが代わりに使うのは決定モデルです。単一選択の質問に対してカテゴリごとに確率を付けて答える仕組みなので、出力は必ず、あなたが書いた通りの綴りを持つラベルのどれか1つになります。
この設計には、使い始めた初日から実感できる副次的な効果が3つあります。テキスト数式より速いこと、およそ10倍安いこと、そして自分がどれだけ確信しているかを教えてくれることです。

GPT_CLASSIFY数式の構文
完全なシグネチャは次のとおりです。
=GPT_CLASSIFY(value, categories, [instructions], [output], [bypassCache])
| パラメータ | 内容 | デフォルト |
|---|---|---|
value | 1つのセル(A2)、または最大100セルの範囲(A2:A50)。範囲を渡した場合は、セルごとに1つずつ、同じ形状で結果が返ります。 | 必須 |
categories | カンマ区切りの文字列(“Bug, Feature, Question”)または範囲。列が1つならラベルを、2つならラベルとその説明を格納します。 | 必須 |
instructions | 分類器に渡す文脈。たとえば「Support tickets of a SaaS product」(SaaS製品のサポートチケット)など。 | "" |
output | label、confidence、both、allのいずれか。 | label |
bypassCache | TRUEでキャッシュを無視して再分類します。 | FALSE |
最もシンプルな呼び出しはこうです。
=GPT_CLASSIFY(A2, "Bug, Feature, Question")
下にドラッグすれば、すべての行にこの3語のどれか1つが入ります。余計なものは一切入りません。
ステップ1:カテゴリを範囲に置く
カンマ区切りの文字列は、ちょっとした動作確認ならそれで十分です。繰り返し使うものなら、ラベルを専用の列に置いて、絶対参照で指定しましょう。
たとえばラベルをF2:F5に置いたとします。数式は=GPT_CLASSIFY(A2, $F$2:$F$5)となり、あとからカテゴリ名を変えたくなっても、編集が必要なのは1セルだけです。
ステップ2:各ラベルに説明を添える
これが精度を左右する最大のポイントです。2列目に1行の説明を追加して、2つの列をまとめて範囲として渡します。
| F | G |
|---|---|
| Bug | 動作が壊れている、または期待と異なる挙動をするもの |
| Feature | まだ存在しない新しい機能を求めるもの |
| Question | すでに動いている機能の使い方を尋ねるもの |
| Billing | 請求書、返金、プラン変更、決済エラー |
これで=GPT_CLASSIFY(A2, $F$2:$G$5)は、「PDFにエクスポートするには?」が、機能への言及を含んでいるにもかかわらずFeatureではなくQuestionだと理解できるようになります。実際のチケットキューでのテストでも、説明文は、instructionsパラメータ単独の場合よりも、境界線上の行を明らかに多く正しく振り分けてくれました。
ステップ3:1つの数式で範囲全体を分類する
ドラッグする代わりに、最初のパラメータで範囲そのものを指定します。
=GPT_CLASSIFY(A2:A50, $F$2:$G$5)
1つの数式で49行が埋まります。範囲内の同一テキストは1回だけ分類され、あとで3つのセルを編集しても、範囲を再実行したときに分類されるのはその3つだけです。
上限は1回の呼び出しあたり100セルです。1,000行のシートなら、範囲版の数式を10個書くか、単一セル版をドラッグするか、どちらでも動きます。範囲版のほうが、管理すべき数式が少なくて済むだけです。
ChatGPT、Claude、GeminiをGoogle Docs、Sheets、Slides、Gmail、Driveの中で直接使えます。タブの切り替えは不要です。
無料で始める信頼度スコア:レビューすべき行を見極める
4番目のパラメータoutputが、この数式の本領を発揮する場所です。4つのモードがあります。
label(デフォルト)は、選ばれたカテゴリを返します。confidenceは、選ばれたカテゴリの確からしさを0から1の数値で返します。bothは、ラベルとスコアを隣り合う2列で返します。allは、カテゴリごとに、カテゴリ範囲の並び順でスコアを1つずつ返します。
チケットにbothを使うとこうなります。
=GPT_CLASSIFY(A2, $F$2:$G$5, "Support tickets", "both")
結果は、B2にBug、C2に0.94と入ります。「エクスポートが遅いんだけど、もう少し速くならない?」のような行は、Featureと0.52で返ってくるかもしれません。これは、モデルが「Bugも検討した」と伝えてきている、という意味です。
信頼度の低い行をレビュー対象にする
C列に0.7未満のフィルタをかけます。それがあなたのレビューキューです。典型的なサポートデータのエクスポートでは、行数の5〜15%程度に収まります。
しきい値を超えた行はすべて完了です。読むのは800件ではなく80件で済み、しかもその80件は、本当に人の目が必要なものばかりです。
条件付き書式でも構いません。C2:C500を、値が0.7未満なら琥珀色、0.5未満なら赤でハイライトします。
「all」でスコアのヒートマップを作る
allは分布全体を返します。カテゴリが4つなら4列が埋まり、各列にはそのカテゴリの確率が入ります。
=GPT_CLASSIFY(A2, $F$2:$G$5, , "all")
このブロックにカラースケールを適用すれば、データセット全体のヒートマップのできあがりです。2つの列で同時に明るくなる行が曖昧な行で、そうした曖昧さがかたまって現れる場合は、カテゴリ同士が重複しているサインです。統合するか、説明をより明確にしましょう。
AIでGoogle Sheetsのテキストを分類:実例5選
チケットの例はわかりやすい典型です。ここからは、実際にお客様のシートでよく見かけるセットアップを5つ紹介します。
レビューの感情分析。 カテゴリは「Positive, Neutral, Negative」、instructionsは「App store reviews」(アプリストアのレビュー)。bothを使って信頼度で並べ替えると、明らかに喜んでいるわけでも怒っているわけでもないレビューが見つかります。有用なプロダクトフィードバックが隠れているのは、たいていそこです。
リードの振り分け。 カテゴリを2列の範囲で用意します。「Enterprise|従業員200名以上、または調達への言及あり」「SMB|小規模チーム、価格に関する質問」「Student|.eduメールアドレスまたは講義への言及あり」。自由記述の「貴社について教えてください」欄を分類して、FILTER数式で振り分けます。
経費の科目分類。 銀行の明細記述は雑です。「AMZN Mktp US*2K4」はベンダー名であってカテゴリではありません。「Software, Travel, Meals, Office, Other」をバケットごとの説明付きで渡して、略称の解読はモデルに任せましょう。
アンケートのテーマ集計。 「改善すべき点を教えてください」のような自由回答です。6つのテーマでallを実行して各列をSUMすれば、回答を1つも二度読みすることなく、テーマのランキングが手に入ります。
コンテンツのタグ付け。 ブログの下書き、商品説明、求人票を、トピック・対象読者・言語で分類します。多言語入力でも問題ありません。カテゴリを英語にしてテキストがポルトガル語、という組み合わせでも機能します。
どのケースでもパターンは同じです。重ならないカテゴリを書き、それぞれを1文で説明し、人が目を通すべきかどうかは信頼度に判断させる。これだけです。

Google Sheets純正のAI関数との比較
Google Sheetsには、対象のWorkspaceプランで使える純正の=AI()関数があり、テキストの分類もできます。すでにBusiness Standard以上を契約しているなら、両者の違いを知っておく価値はあります。
Google Sheetsの=AI() | =GPT_CLASSIFY | |
|---|---|---|
| 対応プラン | Googleのプラン上限に従い、Business Standard以上 | GPT Workspaceの全プラン(無料プランを含む) |
| 月間上限 | 5,000セル(Business Standard/Plus)、25,000セル(Enterprise) | モデルの実際のコストによる従量課金 |
| バッチサイズ | Generateボタン1回につき、選択された先頭350セル(Googleのヘルプページより) | 1数式あたり100セル、数式の数は無制限 |
| 出力 | 自由テキスト | あなたのラベルのどれか1つ、綴りも正確 |
| 信頼度 | なし | カテゴリごとに0から1 |
| 他の数式への組み込み | 非対応 | IF、FILTER、COUNTIFの中で動作 |
最後の行は、見た目以上に重要です。Googleのドキュメントには、AI関数の埋め込みはサポートされていないと明記されているため、=IF(AI(...)="negative", ...)は動きません。一方の=GPT_CLASSIFYはごく普通のカスタム関数なので、=COUNTIF(GPT_CLASSIFY(A2:A50, $F$2:$F$5), "Bug")と1行で書けます。
純正関数は、小さなテーブルへの単発の質問には適しています。しかし、信頼して数えられるラベルを使った大規模な分類には、専用の数式のほうが適した道具です。
料金、キャッシュ、フォールバックの挙動
=GPT_CLASSIFYは、単一選択の質問にカテゴリごとの確率で答える決定モデル「TypeSafe Jev」の上で動きます。課金はモデルの実際のコストに基づくため、同じセルへの=GPT()テキスト呼び出しと比べて、おおよそ10倍安くなります。
実際の請求額を低く保ってくれるのがキャッシュです。セルは1回分類されて結果が保存されるため、シートを開き直しても、数式をコピーしても、再計算しても、課金は発生しません。5番目のパラメータにTRUEを渡すのは、カテゴリを変更して新しい回答が欲しいときだけにしましょう。
決定モデルが利用できない場合は、厳密な列挙型(enum)スキーマを伴うStandardテキストモデルにフォールバックします。この理由でシートにエラーが表示されることはありません。有効なラベルは引き続き取得でき、信頼度の列だけが、決定モデルが復旧するまで空欄になります。
空の入力セルには、推測ではなく空の結果が返ります。そのため、列の下端までドラッグした数式も、きれいなままです。
ChatGPT、Claude、GeminiをGoogle Docs、Sheets、Slides、Gmail、Driveの中で直接使えます。タブの切り替えは不要です。
無料で始めるリリース初週でわかったこと
最初の分類が流れてくるのを見ながら、いくつかのことを学びました。
カテゴリのリストは短く。きちんと説明された5〜8個のカテゴリは、曖昧な20個に勝ります。それ以上細かく分けたい場合は、1つ目のラベルが一致した行だけに実行されるサブカテゴリ数式で、2段階目を追加しましょう。
instructionsパラメータに書くのはドメインの文脈であって、ルールではありません。「Support tickets of a B2B invoicing app」(B2B請求アプリのサポートチケット)は役に立ちます。「テキストがお金に言及していたらBillingを選ぶ」のようなルールは、モデルがラベルの隣で読む場所、つまりBillingの説明欄に書くべきものです。
分類の前に、データをきれいに。キャッシュのおかげで重複行に余分なコストはかかりませんが、集計は歪みます。Google Sheetsで重複を見つける方法の解説は、10分で済む下準備です。
また、タスクを自然な言葉で説明したい方には、データの分類とカテゴリ化ページのSheetsサイドバーが参考になります。なんと、数式を書いてくれるのです。「classify column A into Bug, Feature, Question with confidence」(A列をBug、Feature、Questionに信頼度付きで分類)と入力すれば、bothを指定した=GPT_CLASSIFYを隣の列にドロップしてくれます。パラメータの完全なリファレンスは、GPT_CLASSIFYのドキュメントにあります。
よくある質問(FAQ)
まとめ
Google Sheetsでデータを分類する最速の方法は、あなたのラベルのどれか1つでしか答えられない数式です。=GPT_CLASSIFYはそれを実現し、自信の度合いを教え、1回の呼び出しで100セルを処理し、コストはテキストプロンプトの約10分の1です。
カテゴリを2列の範囲に書き、bothでレビューキューを作り、一次仕分けはシートに任せましょう。GPT Workspaceをインストールして、手作業で仕分けする予定だった次のエクスポートで試してみてください。