以前書いた、Googleスプレッドシートと生成AI時代のパソコンスキルという記事では、Googleスプレッドシートの使い方で困ったときにどんなふうに生成AIに尋ねればよいのかということを説明しました。
関数の使い方がわからないとか、説明を読んでもわからないというときに生成AIに適切な聞き方で質問をしてわかりやすい説明をしてもらったり、Google Apps Scriptでプログラミングをして自動化したいなどというときに、適切な聞き方で質問をして、コードを書いてもらったりということができるという話でした。
今回は、わからないことを教えてもらったり、コードを書いてもらう話ではなく、作業そのものを生成AIに実行してもらう話をします。
まず前置きとして一般的な話をします。
何でも生成AIにやってもらうべき?
数年前まで、スプレッドシートで作業効率化や自動化を行う主な手段は「関数」と「Google Apps Script」でした。そして今ではそこに、生成AIの活用が加わりました。
生成AIの特徴は、日頃使っている言葉で指示ができることですね。
ですから、例えば、「合計、平均を求める」とか「条件満たすデータを別シートへ抽出する」という作業も、日頃使っている言葉で生成AIに指示をして行わせることができます。
「A1からA100に入っている値を合計してA101セルへ書き出して」とか「売上シートに入っているデータのうち、リピーター列に1という値が入っているものを抜き出してリピーターシートに書き出して」というように指示をすればよいわけですね。
スプレッドシートのデータを生成AIに送って、適切な指示を出すとちゃんと書き出してくれます。
でも、こういうのはもちろん「関数」を使えばできてしまうのですよね。
合計だったらSUM関数、条件で抽出するならFILTER関数とかQUERY関数とかが使えます。
で、最近、「言葉で指示できるんだから、関数なんか知らなくても良い」という話がちらほらと聞こえるようになりました。
まあ、この考え、一理あります。関数なんて難しいし、時間も無いから勉強してられないという人も多いですから。そんなときはとりあえず生成AIに投げてしまえば仕事進みますからね。
でも、こういう作業を今後何回も繰り返すとしたら、このやり方、逆に面倒です。
つまり、簡単な処理、例えば`SUMIFやIF程度なら、AIに言葉で指示を打ち込んで回答を待つより、自分で直接書いたほうが何倍も速いし、AIに指示を出すには、シートの構造(どのセルに何が入っているか)を説明する手間がかかるんですよね。関数を使える人なら、その説明コストをカットできます。
もう少し付け加えておくと、それぞれの関数がデータをどう処理するのかいうことを論理的に理解し、説明できるようになる訓練が役に立つのです。
例えば、「もしAがBなら、Cを表示し、そうでなければDにする」という言葉で表されるIF関数の考え方は、AIにどんな指示を出せばよいのかということをそのまま言葉で表しています。
そして、関数の構造を知っている人ほど、AIに対して「A列とB列をキーにして、Cシートから値を引っ張ってくる数式を作って」と、具体的で正確な指示が出せます。
関数で使われる記号や変数は、言葉で表せるものだからですね。
逆に言えば、言葉で書くと長くなるので、記号や変数を使って書いているということです。(交通標識もそうですよね。)
ここでもう一つの面も強調しておきましょう。
AIは「言葉で書いた指示」を「関数」に翻訳してくれます。しかし、以下の理由からやはり基礎知識は不可欠です。
デバッグ(間違い探し)ができる力: 生成AIを使ったことがある人なら、「AIは間違えることがあります」と画面の下に小さく書いてあるのを見たことがあるでしょう。つまり、AIが提示した関数が、100%正しいとまでは断言できないんですよね。「参照範囲が1行ずれている」「絶対参照(`$`)を忘れている」といった小さなミスがあったとしても、それを見抜くには、最低限の知識が必要です。
「何ができるか」を知る力:VLOOKUP関数やQUERY 関数の存在を知らなければ、AIに「こういうことできる?」と聞くことすら思いつきません。知識は「発想の引き出し」ということですね。
で、生成AIの登場で変わったことは何?
関数をAIが書くことができるので「丸暗記」は不要になった
・SUM、VLOOKUP、IF、FILTER、QUERY など、複雑な式が必要になる場面でも、AIに書かせれば一瞬で生成できます。
・ 目的を自然言語で伝えれば、式の修正やデバッグもAIがやってくれます。
つまり、 以前のように「関数名を覚える」とか「構文を覚える」という学習は確かに不要になりつつあります。
じゃあ、生成AIが登場しても変わらず必要なスキルは?
やっぱり関数の最低限の基礎は知っておく
先に書いたように、AIは正しい式を出すことも多いですが、以下のようなケースでは誤りも起こります。
・ データ構造を誤解している
・ 例外ケースを考慮していない
・ 目的に対して過剰に複雑な式を出す
AIが生成した式を理解できないと、間違いに気づけず、トラブルシューティングもできません。
データをスプレッドシートにどのような構造で格納するのがよいか考える力
・ データをどう並べると扱いやすいか
・ どの列をキーにするか
・ どのぐらいの細かさで集計するか
・ どの処理をスプレッドシートで、どこから先をAIに任せるか
この「構造化の考え」はAIでは代替しにくく、関数の理解があるほど強くなります。
AIを使うほど「関数の理解がある人」が圧倒的に有利になる
AIは「あなたの意図」を読み取って式を作りますが、意図を正確に伝えるには次のような指示が必要です。
・「ここは部分一致ではなく完全一致で検索したい」
・「この日付列を使って、月単位で集計したい」
・「重複を除外したい」
・「空白セルは無視したい」
こういうことは、関数の基礎を知っていて関数を使った経験が多い人ほど、AIに正確な指示が出せます。その結果、成果物の質も上がります。
関数、Google Apps Script、生成AIの使い分けは?
以前の記事、「GASでスプレッドシートの機能追加ってどんなことができるの?」では関数とGoogle Apps Script(GAS)の使い分けについて説明しました。
今回は生成AIも加えて考えます。
「リアルタイム性」「自動実行・連携」「非定型・推論」の3つのキーワードで考えて見るとわかりやすいかもしれません。
1. 関数で行ったほうが良い処理
キーワード:リアルタイム、計算、単純な変換
関数は「シート内のデータが変化した瞬間に結果を出す」のが最大の強みです。
スプレッドシートを開いた瞬間に最新の状態であってほしいものは、すべて関数で完結させるのがよいです。
・即時性が求められる計算: 合計、平均、比率などの算出。
・データの整形: 文字列の結合、不要な空白の削除、日付形式の変換。
・動的なフィルタリング: FILTER関数やQUERY関数を使った、別シートへの抽出。
・条件付き書式: 数値に応じてセルに色を塗るなどの視覚化。
2. GAS(Google Apps Script)で行ったほうが良い処理
キーワード:自動化、外部連携、複雑なロジック
GASは「人間の代わりに操作をしてくれる」ツールです。関数では手が届かない「シートの外」への操作も得意です。
・定期的な実行(トリガー): 「毎日朝9時に売上を集計してPDF化する」といった時間指定の処理。
・Googleサービスとの連携: フォーム回答時にGmailを送る、カレンダーに予定を登録する、Driveにフォルダを作るなど。
・複雑すぎる条件分岐: 数多くのIF関数を重ねるような処理は、GASで書いたほうが後から修正しやすくなります。
・外部サービスAPIとの連携: 為替レートや株価、天気予報などを外部サイトから取得してシートに書き込む処理。
3. 生成AIに行ってもらったほうが良い処理
キーワード:意味の理解、要約、コード生成、非構造データ
AIは「正解が一つではない作業」や「ルール化が難しい作業」で真価を発揮します。
入力が曖昧、人間の判断が必要な作業を自動化したい、ルールが複雑でコード化が難しいとかですね。
・テキストの要約・分類: 顧客アンケートの自由記述欄を「ポジティブ・ネガティブ」に分類したり、要点をまとめさせたりします。
・データからのレポート作成: 店舗ごとの売上データをもとに、地域性、年齢別の売上の傾向などを分析しレポートとして出力させます。
・複雑な関数の作成やデバッグ:「こういう計算をしたいんだけど、どんな関数を使えばいい?」と聞いて数式を作らせます。
・GASのコード生成: 自分でコードを書かずに、やりたいことを伝えてプログラムのコードを作ってもらいます。
・バラバラなデータのクレンジング: 表記揺れ(例:「Google」「グーグル」「Google Inc.」)を同一のものとして認識・修正させます。
・OCR: PDFや画像の表を読み取りコンピュータが扱える形式(CSVやJSON形式など)に変換してもらいます。
では、請求書を自動作成する例で役割分担を考えてみると
1. 【関数】の役割:正確な計算とデータの流し込み
関数は「請求書の見た目」と「計算」を担当します。
・マスタからの呼び出し: XLOOKUP関数やVLOOKUP関数を使い、商品コードを入れるだけで「単価」や「品名」が自動入力されるようにします。
・消費税・合計の計算: 数式やSUM関数で消費税の計算などを自動化します。
・日付の自動設定: TODAY関数やEDATE関数を使って、発行日や振込期限を自動計算します。
2. 【GAS】の役割:PDF化・保存・メール送信
GASは「手作業」をゼロにする司令塔です。
・PDF生成: 請求書シートを特定の名前(例:`202602_株式会社〇〇様_請求書`)でPDF出力し、Googleドライブの指定フォルダに保存します。
・メール自動送信: 保存したPDFを添付して、取引先の担当者へGmailで自動送信します。
・履歴の記録: 送信が終わったら、一覧表シートに「送信済み」というスタンプ(日付)を自動で書き込みます。
3. 【AI】の役割:仕組み作りと文章作成
AIは「開発パートナー」として、あなたの作業をサポートします。
・GASコードの作成: 「A列にチェックが入っている行のデータを使い、B1セルの宛先にPDFを送るGASを書いて」と頼めば、数秒でコードの土台が出来上がります。
メール本文の生成: シートに格納されている情報を使い、送付先に合わせた文章を状況に応じて生成させます。
・エラーの解決: GASが動かない時にエラーメッセージを投げれば、原因と修正案を教えてくれます。
特に生成AIに向いている作業の例をもう少し
生成AIの登場で「数値や文字列の処理」だけでなく「意味や文脈の処理」もできるようになりました。
AIの「推論・理解・生成」能力をスプレッドシートに格納したデータに対して活用する具体例を考えてみます。
AIに対して適切な指示ができれば以下のようなことが実現できるでしょう。
1. 大量の「定性データ(文章)」の自動仕分け
アンケートの自由記述や問い合わせメールなど、人間が読んで判断していた作業をAIに任せるパターンです。
・作業内容: 顧客アンケートの回答から「不満」「要望」「感謝」を判別し、さらに「価格」「品質」「接客」などのカテゴリに自動で振り分けさせます。
・AIならではのポイント: 回答中に「安くない」という言葉があった場合、「高い」という意味の不満なのか「品質を考えれば妥当」という意味で一応納得しているのかなど、前後の文脈から判断できます。
・シートでの活用: AIの分類結果を使ってピボットテーブルを作れば、「今月はどの項目の不満が増えたか」を即座に可視化できます。
2. 表記揺れの強力なクレンジング(名寄せ)
従来の関数(SUBSTITUTEやVLOOKUP)では太刀打ちできなかったバラバラな形式のデータを整える作業です。
・作業内容: 住所の「1-1-1」「一丁目一番一号」「1の1の1」を統一するとか、会社名の「(株)」「株式会社」「KK」を整理し、法人格を抜いた正式名称だけを抽出するなど。
・AIならではのポイント: 複雑な置換ルール(正規表現など)を組まなくても、「これらを同じ形式に直して」という曖昧な指示で、人間のような柔軟さで処理します。
・シートでの活用: 顧客リストの重複チェックが楽になり、DMの誤送付や二重送付を防げます。
3. 文脈に応じた「パーソナライズ・ライティング」
先の請求書の例でも出てきましたが、一律の定型文ではなく、相手の情報に合わせた「一言」を添えることができます。
・作業内容: 採用候補者の経歴を読み取り、その人のスキルに合わせたスカウトメールの「冒頭の一言」を作るとか、商品スペック表から、Amazonや楽天などのモールごとに最適化した「魅力的な商品説明文」を生成するなど。
・AIならではのポイント: 「それぞれの候補者のプログラミング経験」と「自社の募集要項」の接点をAIが見つけ出し、自然な日本語で繋ぎ合わせます。
・シートでの活用: 100人、100商品といった大量のデータに対しても、1行ずつ異なる「心のこもった(ように見える)文章」を数分で作成できます。
ここで紹介した3つのようなことは、現在、Googleスプレッドシートの拡張機能(Gemini for Google Workspaceなど)を使えば、関数のような感覚でAIを呼び出して実行することができます。
※ Google Workspace で有料アカウントを使っている人なら、Googleスプレッドシートを始めとするざまざまなアプリでアプリの中でGemniという生成AIと直接携できるようになっています。
Googleのサービスをフル活用して仕事に使う場合は有料アカウントのメリットは多いと言えますが、一人で使うだけとか、スプレッドシートしか使わないtという場合はちょっとコストが気になりますよね。(2026年2月末時点でスプレッドシートでGeminiが使える最も安いプランが月額1600円、ただし3ヶ月間は20%オフとの案内がありました。)
ではGoogle無料アカウントの人はどうする?
そもそも GeminiやChatGPTなどの生成AIはスプレッドシートとは別の独立したアプリです。
Googleスプレッドシートで直接Geminiが使えるのは、GoogleがスプレッドシートとGeminiを連携する仕組みを作ってGeminiを呼び出すボタンをスプレッドシートに設置し、そのボタンを押すと指示を書く窓が出てくるようになっているからですね。そしてGeminiが実行した処理もスプレッドシートに直接取り込まれるわけです。つまり、GoogleがGeminiにスプレッドシートを直接操作させることを許しているわけです。
ですから、「直接」というところにこだわらなければ、Web版の生成AI(ChromeとかEdgeなどのウェブブラウザで普通にアクセスして使うもの)にデータをアップロードして指示を出せば、基本的には同じ事ができます。
まあ、結果をコピーアンドペーストしなければならないのが…ですが。
というわけで、もう少し良い方法を考えましょう。
Gemini API を使う方法(無料枠あり)
APIという言葉が出てきて「なにそれ」って思った人も多いかもしれません。
あるソフトウェアを別のソフトウェアと連携して使いたいというときには、連携用の窓口が必要になります。この窓口がAPIです。
そして、スプレッドシートをGeminiと連携する場合は、Gemni側で用意されている窓口を通してスプレッドシートからGeminiを使うわけです。
ところで、Gemini側では、むやみに誰にでもAPIを使わせるわけには行かないので、API経由でGeminiを使いたい人に対してAPIキーというものを発行します。
APIキーの発行は有料の場合と無料の場合がありますが、Google AI Studioからであれば、GeminiのAPIキーを無料で入手できるようになっています。
無料枠では、たしか1日250回程度までの利用ですかね。
ちなみに、Google AI Studio というのは、生成AIであるGeminiを利用するアプリやシステムを開発したい人が使うウェブサービスで、Googleアカウントがあれば使うことができます。
APIキーがあれば、Geminiにプログラムからアクセスして操作することができるようになります。
はい、ここで押さえておきたいのは「プログラムからアクセス」という点です。
つまり、コードを書いてプログラムを作る必要があるのですね。
さて、プログラミング言語にもいろいろあって、どの言語を使うのかということが気になりますが、ウェブを扱える言語なら何でも大丈夫です。
とはいえ、Googleスプレッドシートを使う場合はGoogle Apps Script が一番いいですよね。Google Apps ScriptならGoogleスプレッドシートを直接操作できますから。
では、どんなプログラムを書く必要があるのでしょうか?
APIを使ってGeminiを使うには、Gemini APIの使い方を学ぶ必要があります。
Gemini APIで決められているやり方で、Gemini APIへHTTPリクエストと呼ばれるものを送信するプログラムを作る必要があるのです。
例えば次のようなものです。(Geminiに「美味しいカレーの隠し味を3つ教えてください」と聞いています(^^))
Gemini APIにリクエストを送信するコード
function callGemini() {
// 1. スクリプトプロパティからAPIキーを取得
const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
// 2. 使用するモデルとエンドポイントの設定 (2026年時点の推奨: gemini-2.0-flash など)
const model = "gemini-2.0-flash";
const apiUrl ='Geminiのモデルを指定するパラメータとAPIキーを表すパラメータを含んだGeminiAPIのURL';
// 3. リクエストボディの作成
const payload = {
"contents": [{
"parts": [{
"text": "美味しいカレーの隠し味を3つ教えてください。"
}]
}]
};
// 4. UrlFetchAppでPOSTリクエスト
const options = {
"method": "post",
"contentType": "application/json",
"payload": JSON.stringify(payload),
"muteHttpExceptions": true
};
try {
const response = UrlFetchApp.fetch(apiUrl, options);
const json = JSON.parse(response.getContentText());
// 5. 結果の抽出と表示
if (json.candidates && json.candidates[0].content) {
const resultText = json.candidates[0].content.parts[0].text;
console.log(resultText);
} else {
console.error("エラーレスポンス:", json);
}
} catch (e) {
console.error("通信エラー:", e.toString());
}
}
こんな感じのプログラムを書いて、Geminiに指示を送り、回答を返してもらいます。(上のコードでは回答はresultTextという変数に入ります。)
そして返された回答を、必要に応じた処理をして自分の利用したい形でスプレッドシートに取り込めばよいわけです。
スプレッドシートに取り込むときにも Google Apps Script でコードを書いてプログラムを作る必要があるでしょう。
まとめると、
・ Google AI Studio でAPIキーを発行すれば、無料枠で利用可能
・ GAS(Apps Script)からAPIを呼び出してスプレッドシートと連携できる
・ 無料枠でも1日250リクエスト程度使える(モデルによる)
ということになりますね。
※ 個人のユーザーが無料でスプレッドシートで直接Geminを使う方法として、Google Workspace Labs に参加するという方法もあるそうです。詳しいことはわかりませんが、
・一部の無料ユーザーでも、Labs に参加するとスプレッドシート内でGeminiが使える
・ 提供は限定的・実験的・いつ終了するかわからない
・ 利用できる機能も制限あり(安定性も低い)
・無料で使えるが、業務用途としては不安定。
とのことです。
今回は、スプレッドシートで生成AIに作業をさせたいときに知っておくとよい基礎知識をご紹介しました。いかがだったでしょうか。
関数やGoogle Apps Scriptはルールに従った処理を忠実におこなうのに対し、生成AIは指示に応じた処理を文脈に応じて確率的に処理をするということでした。
ルールベースの処理と確率的に一番もっともらしい処理をするという違いがあるのですね。
ですから、状況に応じて上手に使い分けることが大切です。
えーと、あと、これ、生成AIを使うときに(さらには一般にネットをつかうときに)大事なことですが、送信したデータがAIの学習に使われるかどうか、また、そもそもそのデータ、外部に送信して良いのかどうかちゃんと考えてください。
個人情報、機微情報、企業機密、法的に保護される情報、他者から預かった情報の取り扱いには特に注意を。
最後に宣伝です
えーと、ここは「ココナラ」でしたね。ココナラにいくつかスプレッドシート関係のサービスを出品しています。
行き詰まったらぜひご利用ください。よろしくおねがいします。