ホーム > ツール・Excel・API

最終更新: 2026.10.24

GASでスプレッドシートを操作する方法|AIに集計コードを書かせて検算するまで

GASでスプレッドシートを操作する方法|AIに集計コードを書かせて検算するまで

GASは、スプレッドシートの[拡張機能]→[Apps Script]でコードを書いて実行できます。 初回は権限の承認画面が出るので、求められる操作の範囲を読み、必要な権限を確認してから許可します。 コードはAIに書かせてもよいですが、元のシートをコピーしてから実行し、結果をピボットテーブルやSUMIFで検算します。確認日:2026年10月23日。

GASを始める手順

GASでスプレッドシートを読み書きする5ステップ。コピーを作成(元ファイルの[ファイル][コピーを作成]で検証用のファイルを用意)、入力シート名(読み取る列と結果を書き込む場所)、[拡張機能][Apps Script]でコードを記述、コードを保存(実行する関数を選んで[実行]し承認内容を確認)、別の方法で検算(正しいことを確認してから日常業務に使う)。下段に、初回はファイル全体を分け入力データを変更しない条件で試すと記載

GASの使い方は、最初にファイル全体のコピーを作り、集計対象と出力先を決めてから、手動で実行して結果を確認するのが基本です。

GASはGoogle Apps Scriptの略で、スプレッドシートの読み書きや定型処理を自動化する仕組みです。楽天市場の店舗でできることには、取り込んだ受注表の商品別集計や、在庫確認表の更新などがあります。

  1. 元ファイルの[ファイル]→[コピーを作成]から、検証用のファイルを作ります。
  2. コピーを開き、入力シート名、読み取る列、結果を書き込む場所を確認します。
  3. [拡張機能]→[Apps Script]を選び、開いたエディタにコードを記述します。
  4. コードを保存し、実行する関数を選んで[実行]を押し、承認内容を確認します。
  5. 出力結果を別の方法で検算し、正しいことを確認してから日常業務に使います。

同じファイル内でタブを複製するだけでは、誤ったコードが別のタブを更新する可能性が残ります。初回はファイル全体を分け、コードにも入力データを変更しない条件を付けましょう。Google公式の操作ガイド、ファイルのコピー方法

GASでスプレッドシートを読み書きする基本命令

基本操作では、スプレッドシート、シート、セル範囲を順に指定し、値を読み取ってから結果を書き込みます。

表のss、sheet、rangeは、それぞれ取得したファイル、シート、範囲を入れる変数名です。

操作短い記述例意味
ファイルを取得SpreadsheetApp.getActiveSpreadsheet()紐づくファイルを取得
シートを取得ss.getSheetByName('受注表')名前で対象を固定
範囲を取得sheet.getRange('A2:C10')A1形式でセルを指定
値を読み取るrange.getValues()行ごとの二次元配列を取得
値を書き込むrange.setValues(rows)二次元配列を範囲へ書き込み

getValues()は数値、日付、文字列などを返し、空セルは空文字列として取得します。セルの行・列番号は1から始まりますが、取得した配列の先頭は[0][0]で参照します。

setValues()では、配列と書き込み先の行数・列数を一致させる必要があります。また、=で始まる値は数式として解釈されるため、商品コードなどの転記でも確認が必要です。

大量の処理では、セルごとの読み書きを繰り返さず、まとめて読み取り、計算後にまとめて書き込みます。Google公式のRangeリファレンス、処理効率の推奨事項

売上集計の前に決める列構成と集計条件

売上集計では、行の単位、金額の意味、対象条件、日付の基準を、コード作成より先に確定させます。

以下は記事用に作成した架空の列構成であり、楽天市場の正式な受注CSV仕様を示すものではありません。

列見出し型と意味
A明細ID文字列、商品明細を一意に識別
B受注日時スプレッドシートの日時値
C商品コード文字列、先頭のゼロを保持
D数量数値
E集計対象金額数量反映済みの明細金額
F集計区分「集計対象」または「除外」

この例ではE列を合計するため、数量を再び掛けると売上が過大になる点を、依頼文にも明記します。税込・税抜、値引き、送料などの扱いは、E列を用意する段階で決めておきます。

注文全体の請求額が商品行ごとに繰り返されている表では、その列の単純合計も重複計上になります。同じ注文番号に複数の商品明細がある場合もあるため、注文番号だけで重複削除しないでください。

日別集計では、受注日と出荷日を混ぜず、スプレッドシートとスクリプトのタイムゾーンも確認します。Googleは、両者のタイムゾーンの不一致が、不具合の原因になると説明しています。Google公式のタイムゾーン説明)

日本の祝日を判定に使う

営業日だけで集計したい場合は、Googleカレンダーの祝日カレンダーを使う方法があります。パソコン版では[カレンダーを追加]→[関心のあるカレンダーを探す]→[地域限定の祝日]から日本の祝日を追加します。

GASではCalendarApp.getCalendarsByName()で、所有または登録しているカレンダーを名前で取得できます。取得したカレンダーのgetEventsForDay(日付)に予定があれば、その日を祝日として扱えます。カレンダー名は表示言語で変わるため、カレンダーの設定で確かめます。

Googleは、祝日の情報は第三者の企業の情報に基づくと説明しています。カレンダーを読む権限が承認画面に加わる点と、振替休日などの結果を一度は目で確かめる点も押さえておきます。Google公式の祝日の追加方法、CalendarAppリファレンス

AIに集計コードを書かせる頼み方

AIには、正確な列構成と集計条件を伝え、外部送信や元データの変更を行わないコードを依頼します。

依頼時は顧客情報入りの受注表を貼らず、実際と同じ型・形式を持つ架空データで構造を伝えましょう。

Google スプレッドシートに紐づくGASで、商品別・日別の金額集計を作成してください。 入力シート名は「受注データ_作業用」で、先頭行が見出し、以降は商品明細です。 A列は文字列の明細ID、B列は日時値の受注日時、C列は文字列の商品コードです。 D列は数値の数量、E列は数量反映済みの集計対象金額、F列は文字列の集計区分です。 F列が「集計対象」の行だけでE列を合計し、D列の数量は再び掛けないでください。 商品別はC列、日別はB列をAsia/Tokyoの日付でまとめ、先頭のゼロを保持してください。 重複ID、金額や日時の型違い、商品コードの空欄、未知の区分は、補正せず行番号を示してください。 現在のファイルだけを扱い、入力データの値・数式・並び順を変更しないでください。 全データを検証してから新規シートに出力し、出力名が存在する場合は停止してください。 外部通信、AIのAPI呼び出し、メール送信、共有変更、外部ライブラリは使わないでください。 トリガー作成や公開を行わず、明細をログへ出さず、@OnlyCurrentDocを付けてください。 コード作成前に仕様と不足事項を確認し、作成後は読み書き範囲と必要な権限を説明してください。

個人情報保護委員会は、個人情報を生成AIへ入力する際、利用目的の達成に必要な範囲か確認するよう求めています。本人の同意なく入力する個人データについては、機械学習に利用しないこと等の確認も必要です。個人情報保護委員会の注意喚起

GASの承認画面で確かめる権限と外部送信

承認画面では、集計に必要な権限かを確かめ、外部通信やメール送信を求められた場合はコードを見直します。

今回のように現在のファイル内だけで集計する設計では、次の項目を確認する運用が適しています。

確認項目判断の目安
実行アカウント店舗業務で対象ファイルを扱うアカウントか
spreadsheets.currentonly現在のスプレッドシート内に限定する権限
spreadsheetsより広いアクセスが必要な理由を確認
script.external_request外部通信の権限であり、今回の設計では不要
メール送信・共有変更今回の集計では使わないため、要求理由を確認
未確認アプリの警告作成元、コード、要求権限を確認して判断

Apps Scriptはコードから必要な権限を判定し、新しいサービスを加えると追加承認を求める場合があります。権限を個別に許可できる画面では、処理に必要な項目が未承認だとエラーになることがあります。Google公式の承認ガイド

@OnlyCurrentDocは文書へのアクセス範囲を絞る指定で、外部送信を一律に禁止する設定ではありません。UrlFetchAppは取得だけでなく送信にも使えるため、通信先と渡す内容を確認する必要があります。

POSTがなくても、GET通信のURLに情報を入れると、通信先にその情報が渡る点にも注意してください。ファイルのコピーや特定の単語の検索だけで安全とは判断せず、処理範囲全体を確かめましょう。Google公式のUrlFetchAppリファレンス

AIに書かせたコードを検算する

GASの結果を検算する6ステップ。架空データで正解を手計算、重複ID・空欄・文字列の金額が集計に混ざらないか確認、保存用コピーから商品別と日別のピボットテーブルを作成、GASの結果と照合、再実行して追記や二重計上がないか確認、実データでも照合して使用コードと検算結果を保存。右側にはピボットテーブルの設定(行は商品コードまたは日付、値は集計対象金額のSUM、フィルタは集計区分が集計対象)と、時刻付きの日別検算にSUMIFSを使う方法、総合計が一致しても振り分けが違う場合があることの注意を示す

検算は保存した入力データから独立して作り、総合計だけでなく商品別・日別の金額と明細数まで照合します。

  1. 架空データで正解を手計算し、通常行、除外行、日付の境界を含めて実行します。
  2. 重複ID、空欄、文字列の金額も試し、異常が正常な集計に混ざらないか確認します。
  3. 入力データの保存用コピーから、商品別と日別のピボットテーブルを作成します。
  4. 商品別金額、日別金額、総合計、対象・除外の明細数をGASの結果と照合します。
  5. 再実行し、過去の結果への追記や二重計上、既存シートの変更がないか確認します。
  6. 実データでも照合し、使用コード、集計条件、実行日時、検算結果を保存します。

ピボットテーブルは、見出し付きの入力範囲を選び、[挿入]→[ピボット テーブル]から作成できます。次の設定で、値の集計方法が件数ではなくSUMになっていることも確認します。

設定商品別の検算日別の検算
行商品コード元の日時から用意した日付だけの列
値集計対象金額をSUM集計対象金額をSUM
フィルタ集計区分が「集計対象」集計区分が「集計対象」

ピボットの集計セルをダブルクリックすると、対応する元データの行を別シートで確認できます。Google公式のピボットテーブル手順

SUMIFで調べる場合は、検算用シートのH列に=IF(F2="集計対象",E2,0)を入れ、必要な行まで適用します。別シートのA2に商品コードを置き、=SUMIF('検算用'!C2:C,A2,'検算用'!H2:H)で照合します。

商品コードの*や?はワイルドカードになるため、該当する場合は公式説明に沿った対応が必要です。Google公式のSUMIF説明

時刻付きの日別検算では、SUMIFSで「当日以上、翌日未満」と「集計対象」を条件にして合計します。総合計が一致しても振り分けが違う場合があるため、商品別と日別の確認を省略しないでください。Google公式のSUMIFS説明

GASのトリガーと実行時間の上限

自動実行は手動の検算後に設定し、通常の実行時間とトリガーの日次合計時間を分けて管理します。

トリガー用途主な条件
シンプルなonEdit(e)セル編集時の入力補助承認が必要なサービスに制約
インストール可能な編集時編集を起点にした処理作成者の権限で実行
時間主導型定期集計実行時刻に揺れがある

エディタの[トリガー]→[トリガーを追加]で、実行する関数とイベントの種類などを設定します。時間主導型は、午前9時の設定でも公式例では9時から10時の間に実行時刻が選ばれます。

GASやAPIによるセル更新では、編集時トリガーは動かないため、後続処理はコードから呼び出します。また、担当者の変更時には、トリガーの作成者と、そのアカウントのアクセス権限を確認します。Google公式のトリガー説明

シートのボタンから実行する

トリガーを使わずに担当者が押して実行したい場合は、シートに置いた図形や画像にスクリプトを割り当てて、ボタンとして使えます。

  1. [挿入]から図形描画または画像をシートに配置します。
  2. 配置した図形を選び、右上のメニューから[スクリプトを割り当て]を選びます。
  3. 実行する関数名を、かっこを付けずに入力して確定します。

Googleの説明では、この方法はスプレッドシートに紐づくスクリプトで使え、パソコンのブラウザでクリックしたときだけ実行されます。スマホのアプリで押しても実行されません。Google公式のボタン割り当て手順

上限の項目個人向けアカウントGoogle Workspace
通常の実行時間6分/実行6分/実行
カスタム関数30秒/実行30秒/実行
トリガーの合計実行時間90分/日6時間/日
同時実行数/ユーザー3030
同時実行数/スクリプト1,0001,000
トリガー数20/ユーザー/スクリプト20/ユーザー/スクリプト
URL Fetch呼び出し20,000回/日100,000回/日

日次クォータはユーザー単位で、最初のリクエストから24時間後にリセットされ、超過すると実行が停止します。試用アカウントには追加制限があり、有料移行後の引き上げには累計100米ドル相当以上の支払いと、到達後60日以上の経過が必要です。

上限は予告なく変更されるため、運用開始時にも公式表を確認し、実行履歴で処理時間を測ってください。Google公式のクォータ表

シンプルトリガーの実行時間は最長30秒であり、通常のスクリプトの6分とは条件が異なります。Google公式のシンプルトリガー制限

GASの実行ログと集計差額の確認方法

実行エラーは履歴から調べ、集計差額は金額の定義、対象条件、日付の順に原因を切り分けます。

手動実行直後は[実行ログ]、自動実行の成否は左側の[実行数/Executions]で確認できます。ログには処理名や件数、成否を残し、顧客情報や受注明細全体を出力しない設計にしましょう。Google公式のログ説明

症状最初に調べる点
金額が大きい数量の二重乗算、注文金額の重複、再実行時の追記
金額が小さい文字列の金額、範囲漏れ、対象条件の違い
商品別だけ違う商品コード、SKU、空白、先頭のゼロ
日別だけ違う日時の型、時刻、タイムゾーン
書き込みに失敗配列と出力範囲の行数・列数
管理画面と違う日付基準、キャンセル、返品、税・送料・値引き

AIに修正を頼む際は、期待値と実際の結果、架空データで再現した例を渡し、原因の説明を求めます。「数字を合わせて」だけで修正させず、仕様と入力値のどちらに原因があるかを確認してください。

よくある質問(FAQ)

導入時の疑問は、操作方法、承認、処理上限、データの扱い、検算の役割を分けると判断しやすくなります。

GASはどこから開きますか

対象のスプレッドシートを開き、上部の[拡張機能]→[Apps Script]からエディタへ進みます。ファイルに紐づくコードとして作成できるため、まずはコピーしたファイルから始めましょう。

初回の承認画面ではすべて許可しますか

要求される権限を読み、処理に必要かを確認してから許可し、不要な要求があればコードを見直します。必要な権限を許可しなかった場合は、その権限を使う処理が承認エラーになることがあります。

GASでは何行まで集計できますか

getValues()とsetValues()専用の一律の処理行数上限は、参照した公開情報では確認できません。通常の実行時間上限を踏まえ、実際のデータとコードで処理時間を測定してください。

AIに受注データをそのまま渡してもよいですか

コード作成の依頼では、列構成と架空データを使い、氏名、住所、電話番号などは入力しない運用を勧めます。AIへの入力内容の確認とは別に、生成されたGASに外部送信がないかも確かめてください。

コードが正常終了すれば集計は正しいですか

正常終了は処理が終わったことを示すため、集計条件や金額の定義が正しいかは別に確認する必要があります。元データのコピーから作ったピボットテーブルやSUMIFで、内訳と明細数まで検算してください。

ご相談・お問い合わせ

店舗の「次の一手」を一緒に進めるなら

AI社員アプリ・運営代行・ECコンサルまで、現場を知るチームがワンストップで伴走します。

AI社員アプリ ラクリプで日々の作業を自動化。導入のご相談も
運営代行 受注・ページ・広告まで店舗運営をまるごと代行
ECコンサル/AI顧問 SOY受賞店の知見で戦略と改善、AI活用を設計
西尾 勝太

西尾 勝太株式会社ラクダ 代表

楽天SOY 2年連続受賞 / 楽天NATIONSリーダー店舗 / 楽天NATIONS AIエバンジェリスト

楽天市場の月商を5年で200万円→2億円に伸ばした現場の実践者。売れるECの方程式にAIを重ね、EC事業者の「次の一手」に伴走しています。

西尾勝太のブログを読む
415社 導入実績
1,000+人 ラクリプウォーク利用者
2年連続 楽天SOY受賞
西尾勝太

SYOTA NISHIO

西尾 勝太

#楽天SOY 2年連続#楽天NATIONS講師#NATIONS AIエバンジェリスト#AI×EC

金融系システム会社で10年以上、システムとデータに向き合う現場経験を積む。その後、家業でもある75年続く老舗化粧品店にジョインし、EC事業の立て直しに着手。

広告に頼らず、商品ページ・レビュー・リピート導線を一つずつ磨き込む地道な運営で、楽天市場の月商を5年で200万円から2億円へと100倍に成長。2024年・2025年と2年連続で楽天ショップ・オブ・ザ・イヤーを受賞し、楽天NATIONS講師として全国の店舗運営も支援してきた。

「現場で結果を出す人が、もっと創造的な仕事に時間を使えるように」

その思いから、売れるECの方程式にAIを掛け合わせたEC特化型AIエージェント「ラクリプ」を開発。

いまも一人のプレイヤーとして店舗に立ちながら、ECに携わる事業者の「次の一手」に伴走し続けている。

100倍楽天月商
200万→2億円(5年)
13/15NATIONS講師として
短期で売上2倍達成
415社ラクリプの導入実績
(EC事業者)
250名AI×EC
オンライン勉強会主催

CAREER TIMELINE

数字と熱量で塗り替えた、EC×AIの軌跡

  • SYSTEM ERA金融系システム会社で10年以上の実戦経験を積む
  • EC ERA START75年続く老舗化粧品店にジョイン。EC事業の改革に着手
  • 2024楽天月商を5年で200万→2億へ。楽天ショップ・オブ・ザ・イヤー受賞
  • 2024-楽天NATIONS講師に就任。短期で15店舗中13店舗の売上2倍を達成
  • 2024-花王など大企業向けECセミナーで熱狂を呼ぶダントツ講師として登壇
  • 2025EC事業者向け200名規模のAIセミナーを開催。100名超のECコミュニティ「COD」を運営
  • 2025株式会社ラクダを創業。EC特化型AIエージェントサービス「ラクリプ」をリリース
  • 2025楽天ショップ・オブ・ザ・イヤー 2年連続受賞
  • 2026.01楽天新春カンファレンスでAIをテーマに登壇
  • 2026.03楽天NATIONS AIエバンジェリストに就任
  • 2026.04AI×EC勉強会で約250名規模のオンライン勉強会を主催
  • 2026.08楽天グループ最大級のビジネスイベント「Rakuten AI Optimism」に登壇。三木谷社長とセッションを行う
  • NOWラクリプは導入実績415社に到達。Chrome拡張「ラクリプウォーク」も1,000+ユーザーが利用中

HONORS & POSITIONS

主要な受賞・公職

01楽天SOY 2年連続受賞2024・2025年 楽天ショップ・オブ・ザ・イヤーを連続受賞。EC業界でも稀有な実績
02楽天NATIONS講師短期で15店舗中13店舗の売上2倍を達成
03NATIONS AIエバンジェリスト2026年3月就任。AI×ECの最前線を牽引
04楽天新春カンファレンス登壇2026年1月、AIテーマで登壇
05ECコミュニティ「COD」運営EC事業者100名超のコミュニティを主宰。AI×ECの知見を継続発信
06ラクリプの導入実績415社2025年創業のラクダで開発したEC特化AIエージェントが拡大中
07大手企業講演に継続登壇花王をはじめとする企業の社内講演に継続的に登壇
08Chrome拡張「ラクリプウォーク」楽天店舗運営を支援する拡張が1,000+ユーザーへ。現場ツールとして支持が拡大
09株式会社やよい 副社長75年続く老舗化粧品店の副社長として実店舗を運営し、人材育成に注力

MESSAGE

EC事業者の、いちばん近くの味方でありたい

私自身、朝から晩まで受注処理やページ修正に追われ、「本当にやりたい企画に手が回らない」もどかしさを、現場で何年も味わってきました。AIは、その時間を事業者の手に取り戻すための道具です。派手な魔法ではなく、日々の一手間を静かに肩代わりしてくれる相棒——ラクリプをそんな存在に育てていきます。

EC運営は、ともすれば孤独になりがちな仕事です。だからこそ、数字にも、迷いにも、いちばん近くで伴走する。それが私たちラクダの役割だと思っています。

西尾 勝太

実務家が磨いたAIを、無料で試してみる