【コピペで使える】Googleスプレッドシート見積書作成術!関数でミスなく時短

自動化事例

「毎月の見積書作成、もっと楽にならないかな…」
「手入力による金額のミスや、宛名の書き間違いを防ぎたい」
「過去の見積もりを探すのが大変…」

日々の業務で、このようなお悩みをお持ちではないでしょうか。

見積書作成は、ビジネスにおいて欠かせない重要な業務ですが、同時に時間のかかる定型業務でもあります。特に、毎月同じような内容の見積書を作成している場合、その手間は決して小さくありません。

本記事では、Googleスプレッドシート(以下、スプレッドシート)の関数を使って、見積書作成を自動化する方法を、初心者の方にも分かりやすく解説します。

普段お使いのスプレッドシートに少し工夫を加えるだけで、入力ミスを防ぎ、作成時間を大幅に短縮できます。ぜひこの記事を読みながら、一緒に「見積書自動作成シート」を作成してみましょう。

まずは完成形をイメージ!自動化の全体像

今回は、以下の4つのシートを連携させて、見積書作成の自動化を実現します。

  1. 顧客マスタ:取引先の情報を一元管理するシート
  2. 商品マスタ:自社の製品やサービスの情報を一元管理するシート
  3. 見積管理表:いつ、誰に、何を、いくらで見積もったかを記録する一覧表
  4. 見積書:顧客に提出する見積書のデザインテンプレート

基本的な流れは非常にシンプルです。

「見積管理表」に見積もり内容を入力するだけで、「見積書」シートに情報が自動で反映され、印刷できる状態になる、という仕組みを作ります。

手入力する箇所を最小限にすることで、入力ミスを劇的に減らし、誰が作業しても同じ品質の見積書をスピーディーに作成できるようになります。

Step1. データを管理する「マスタ」を作成しよう

自動化の第一歩は、見積書に必要な情報(顧客情報、商品情報)を整理し、「マスタ」として一元管理することです。マスタを用意することで、情報の入力が格段に楽になり、表記の揺れも防げます。

1-1. 顧客マスタの作成

まずは、取引先の情報をまとめた「顧客マスタ」シートを作成します。
会社名、部署名、担当者名、住所など、見積書に記載が必要な項目をリストアップしましょう。

【作成例:顧客マスタ】

顧客ID会社名郵便番号住所部署名担当者名
C001株式会社サンプル商事〒100-0000東京都千代田区架空町1-2-3営業部鈴木 一郎
C002合同会社テスト産業〒160-0000東京都新宿区見本町4-5-6開発部高橋 花子
C003ABCコンサルティング〒220-0000神奈川県横浜市西区仮想台7-8-9人事部田中 誠

ポイント:

各顧客に「C001」のような重複しない「顧客ID」を割り振っておくと、後々のデータ管理が非常にスムーズになります。

1-2. 商品マスタの作成

次に、自社で取り扱っている商品やサービスの情報をまとめた「商品マスタ」を作成します。

【作成例:商品マスタ】

商品ID商品名単位単価備考
P001高性能マウス5,000在庫あり
P002静音キーボード8,000
P003業務効率化コンサルティング150,000月額
P004システム開発500,000初期費用

ポイント:

こちらも商品ごとに「P001」のような「商品ID」を割り振っておきましょう。将来的に商品が増えた場合でも、IDを基準に正確な情報を管理できます。

Step2. 見積もり内容を記録する「見積管理表」を作成しよう

マスタが完成したら、次に見積もりの内容を一つひとつ記録していくための一覧表、「見積管理表」シートを作成します。

【作成例:見積管理表】

見積番号発行日顧客ID商品ID数量
M2409-0012024/9/26C001P00110
M2409-0012024/9/26C001P00210
M2409-0022024/9/27C002P0031

ポイント:

この時点では、会社名や商品名を直接入力するのではなく、Step1で設定した「顧客ID」と「商品ID」を入力するのがポイントです。なぜなら、IDをキー(目印)にして、後ほど関数で正式名称や単価を自動で呼び出すためです。

入力ミスを防ぐ!プルダウンリストの設定

IDを手入力するのも良いですが、よりミスをなくすためにプルダウンリスト(ドロップダウンリスト)を設定しましょう。

  1. 「見積管理表」の「顧客ID」列を選択します。
  2. メニューバーの「データ」>「データの入力規則」をクリックします。
  3. 画面右側に現れた設定欄で、「ルールを追加」をクリックします。
  4. 「条件」のプルダウンから「プルダウン(範囲内)」を選択します。
  5. 右側のアイコンをクリックし、「顧客マスタ」シートの顧客IDが入力されている範囲(例:’顧客マスタ’!A2:A20)を選択し、「完了」をクリックします。

これで、「顧客ID」のセルをクリックすると、顧客マスタに登録されているIDがリストで表示され、選択するだけで入力できるようになります。「商品ID」列にも同様の設定を行いましょう。

Step3. 提出用の「見積書」テンプレートを作成しよう

いよいよ、お客様に提出する「見積書」のテンプレートを作成します。
宛名や見積もり明細、合計金額など、一般的な見積書のフォーマットで作成しましょう。

今回は以下フォーマットに沿って解説します。

この時点では、中身は空の状態で問題ありません。

3-1. 検索用の「見積番号」入力欄を準備する

続いて、この見積書テンプレートに情報を呼び出すための「検索キー」となる見積番号の入力欄を準備します。

このとき、入力欄を印刷範囲の”外側”に設けます。こうすることで、お客様に提出するPDFに作業用の入力欄が映り込むのを防ぎ、見た目をスッキリさせることができます。

  1. 例えば、シートの右側にあるK1セルを、見積番号の入力欄として使うことに決めます。分かりやすいようにセルに色を付けたり、「見積番号入力欄」と見出しを付けておくと良いでしょう。
  2. 次に見積書テンプレートの中で、実際に見積番号を表示させたいセル(例:H4セル)に、=K1という数式を入力します。

これで準備は完了です。K1セルに入力した見積番号が、自動的にH4セルに表示されるようになりました。

Step4. 関数で見積書に情報を自動反映させよう

それでは、Step3で準備したK1セルに見積番号(例:M2409-001)を入力すると、見積書テンプレート内に他の情報も自動で表示されるように、関数を設定していきましょう。

今回は、指定した範囲から特定のデータを検索して取り出すことができる「VLOOKUP(ブイルックアップ)関数」を使用します。

4-1. 宛名(顧客情報)を自動表示する

まずは、見積番号に紐づく顧客情報を表示させましょう。

「見積書」シートの会社名を表示させたいセル(例:A4)に、以下の関数を入力します。

=VLOOKUP(
  $K$1,
  '見積管理表'!A:C,
  3,
  FALSE
)

少し複雑に見えますが、分解すると簡単です。

  • $K$1: 検索したい値(見積番号が入力されているセル)を指定します。$をつけることで、セルを固定しています(絶対参照)。
  • ‘見積管理表’!A:C: 検索の対象となる範囲を指定します。今回は見積管理表のA列(見積番号)からC列(顧客ID)までです。
  • 3: 範囲の中で、取り出したいデータが左から何番目の列にあるかを指定します。今回は3番目の「顧客ID」を取り出します。
  • FALSE: 完全に一致するデータのみを検索する場合のおまじないです(完全一致)。

この関数は「見積番号($K$1)をキーに、見積管理表のA列からC列の範囲を探し、見つかった行の3列目(顧客ID)を表示してね」という意味になります。

しかし、これでは会社名ではなく「顧客ID」が表示されてしまいます。

そこで、VLOOKUP関数をもう一度使い、取得した顧客IDを元に「顧客マスタ」から正式な会社名を取得します。

会社名を表示させたいセルに、最終的に以下の関数を入力します。

=VLOOKUP(
  VLOOKUP($K$1, '見積管理表'!A:C, 3, FALSE),
  '顧客マスタ'!A:F,
  2,
  FALSE
)

これは、VLOOKUP関数を二段階で使っている(入れ子にしている)形です。

  1. 内側のVLOOKUPで、見積番号から「顧客ID」を取得
  2. 外側のVLOOKUPで、1で取得した「顧客ID」をキーに、顧客マスタから「会社名」を取得

同様の仕組みで、住所や担当者名も「顧客マスタ」から自動で表示させることができます。取り出したい列の番号(2の部分)を変更するだけです。

  • 住所の場合:4列目なので4を指定
  • 担当者名の場合:6列目なので6を指定

4-2. 見積もり明細を自動表示する

宛名と同様に、見積もりの明細も自動で表示させましょう。

こちらは、1つの見積番号に対して複数の商品が紐づくことがあるため、「FILTER(フィルター)関数」を使います。

見積もり明細の商品IDを表示させたいセル(例:F15)に、以下の関数を入力します。

=FILTER(
  '見積管理表'!D:E,
  '見積管理表'!A:A = $K$1
)

これは「見積管理表のA列が、見積書で指定した見積番号($K$1)と一致する行の、D列(商品ID)とE列(数量)をすべて抜き出してね」という意味になります。

あとは、先ほどのVLOOKUP関数を応用して、表示された商品IDから「商品マスタ」を参照し、正式な商品名や単価を表示させれば、見積もり明細の完成です。

4-3. 金額を自動計算する

単価と数量が自動表示されれば、あとは掛け算と足し算です。
小計は=数量のセル * 単価のセルで計算できます。

合計金額は、=SUM(小計の範囲) のようにSUM関数を使えば簡単に算出できます。

Step 5. 見積書をPDFとして出力する

関数で見積書の情報が自動で反映されたら、最後にお客様へ提出するためにPDF形式で出力します。

GoogleスプレッドシートからPDFを出力する手順はとても簡単です。

  1. 「見積書」シートを表示した状態で、あらかじめ見積書の印刷したい範囲(例:A1:I50など)をドラッグして選択しておきます。
  2. メニューバーの「ファイル」>「ダウンロード」>「PDF ドキュメント(.pdf)」をクリックします。
  3. 右側に印刷設定の画面が表示されます。
  4. 以下の設定を確認・変更します。
    • エクスポート: 「選択中のセル」になっていることを確認します。
    • 用紙サイズ: 「A4」など、提出先の指定に合わせます。
    • ページの向き: 「縦」を選択します。
    • スケール: 「幅に合わせる」を選択すると、見積書が1ページにきれいに収まります。
    • 印刷形式: 「グリッド線を表示」のチェックを外すと、セルの枠線が消えて見た目がすっきりします。
  5. 右上の「エクスポート」ボタンをクリックします。

これで、作成した見積書がPDFファイルとしてお使いのパソコンにダウンロードされます。 Step3で入力欄を印刷範囲の外に作成し、ここで「選択中のセル」をエクスポート対象にすることで、余計な情報が載らない綺麗な見積書を出力できます。

さらに効率化を目指すなら

ここまででも十分に自動化のメリットを感じていただけるはずですが、さらに効率化を目指すための方法を2つご紹介します。

XLOOKUP関数の活用

最近のスプレッドシートでは、VLOOKUP関数より高機能な「XLOOKUP(エックスルックアップ)関数」が利用できます。VLOOKUP関数の弱点(検索範囲の左端の列しか検索できないなど)を克服しており、より直感的に利用できます。

VLOOKUP関数とXLOOKUP関数の詳しい使い方や違いについては、こちらの記事で詳しく解説していますので、ぜひご覧ください。

Google Apps Script(GAS)による自動化

ボタン一つで、

  • 見積番号を自動で採番する
  • 作成した見積書をPDF化して、Googleドライブの指定フォルダに自動保存する
  • 見積書の内容をチャットツールに通知する

といった、より高度な自動化も可能です。

これには「Google Apps Script(GAS)」というプログラミングの知識が少し必要になりますが、定型業務をさらに効率化する強力なツールです。

GASの基本的な使い方については、こちらの記事で詳しく解説しています。

まとめ:定型業務の自動化で、より創造的な仕事へ

今回は、Googleスプレッドシートの関数を活用して、日々の見積書作成業務を自動化する方法をご紹介しました。

【自動化のポイント】

  • 顧客・商品の情報を「マスタ」で一元管理する
  • 日々の見積もり内容は「管理表」に記録する
  • VLOOKUP関数やFILTER関数を使い、「管理表」から「見積書」へ情報を自動転記する

一度この仕組みを作ってしまえば、日々の作業は「見積管理表」に数項目入力するだけになります。これにより、作業時間が短縮されるだけでなく、転記ミスや計算ミスといったヒューマンエラーを限りなくゼロに近づけることができます。

見積書作成のような定型業務を自動化することで生まれた時間を、お客様への提案や新しい企画の立案など、より付加価値の高い創造的な仕事に使いませんか?

※Googleサービスは、Google LLC の商標であり、この記事はGoogleによって承認されたり、Google と提携したりするものではありません。