さくっとエクセレートさくっとエクセレート

概要

データを活用できる仕組みが備わった、エクセルの請求書テンプレートを作成する方法を紹介します。 VBAを使わずに、「使いやすく」「修正しやすい」テンプレートを作ることができます。

具体的には、記入するデータをテーブルにまとめる構成にすることで、 記入漏れ・修正忘れを防止できるとともに、外部とのデータ共有が容易になります。 さらに、入力規則の設定もしやすくなり、 データの一貫性と精度が上がります。

エクセルのバージョン

本記事は、 エクセル2024(ローカルまたは共有フォルダでの運用) を基に作成しています。
環境によっては、UIなどの細かな点が異なる可能性があります。

請求書とは?

請求書は、提供した商品・サービスの代金を請求するための書類です。 商品・サービスの受注側(請求者)が発注側(顧客)に送付し、金額や支払い条件を明示します。

書類に必要な項目

請求書には法律で定められた書式はありませんが、 以下の「必須項目」を最低限含めるようにしましょう。

項目必須/任意説明
請求者の名前必須会社名または個人名「株式会社〇〇商事」
住所任意請求元の所在地「東京都千代田区〇〇1-2-3」
電話番号請求元の連絡先「03-1234-5678」
請求金額必須税込の合計金額「¥220,000」
消費税合計金額に含まれる消費税額「¥22,000」
請求書の発行日任意取引先の締め日に合わせるのが一般的「2025/03/31」
請求書番号請求書を識別する管理番号「INV-20250331-01」
支払期限支払期日を明示し、トラブルを防止「2025/04/30」
請求書の交付を受ける事業者名必須顧客の会社名・屋号など「株式会社サンプル」
担当者任意宛名や部署名を明記「田中様」
振込先情報銀行名・支店名・口座番号など「〇〇銀行 本店 普通 1234567」
振込手数料の負担者「貴社負担」「当社負担」などを明記「振込手数料:貴社負担でお願いします」
取引日必須商品やサービスの提供日「2025/03/15」
取引内容品名・サービス名・作業内容など「Webサイト制作」
税抜単価1単位あたりの金額「¥50,000」
数量数量(個数、時間など)「4」
明細金額任意税抜単価 × 数量の計算結果(小計)「¥200,000」

データ活用のための工夫

入力内容をテーブルにまとめ、請求書フォーマットへ参照して埋め込む構造にします。 これにより、以下のメリットがあります。

  • 入力・修正箇所が一か所にまとまり、記入漏れ・修正忘れが防げる。
  • 外部とのデータ共有が容易になる。
  • 入力規則の設定がしやすくなる。
    • 入力候補をリスト化して表示できるため、入力ミスや表記ゆれを防止できる。 これにより、他シート・他ファイルと連携したときのデータ処理がスムーズになる。

ファイルの作り方

構成

1ファイル(ブック)中に2シートを用意します。 そのうちの1シート「書類フォーマット」では、 3つのエリアに分けて使用します。 もう1シート「商品リスト」では1テーブルのみを配置し、 「書類フォーマット」の取引内容テーブル内で利用します。

  • 書類フォーマットシート
    • 出力エリア
    • 入力エリア
    • 作業エリア
  • 商品リストシート
ファイルの構成イメージ図

入力エリアの作成

入力データを格納する4つのテーブルを作成します。 テーブルはI列あたりより右側に配置し(A~H列あたりは空ける)、 縦方向に並べていきます。

テーブルの作成方法

  1. 作成するセルを選択
  2. 挿入タブ > テーブルボタン
    Ctrl + t
入力エリアへのテーブルの配置

書類情報テーブル

テーブル名: P_書類情報

項目必須/任意説明
請求金額必須税込の合計金額「¥220,000」
発行日任意請求書の発行日(取引先の締め日に合わせるのが一般的)「2025/03/31」
管理番号請求書を識別する管理番号「INV-20250331-01」
支払期限支払期日を明示し、トラブルを防止「2025/04/30」
備考書類の備考欄に追加する内容「ご請求金額には定期点検サービスが含まれます。」

請求金額には、T_取引内容テーブルを作成後に下記の数式を記入します。 =SUMPRODUCT(T_取引内容[税額],T_取引内容[数量]) +SUMPRODUCT(T_取引内容[税抜単価],T_取引内容[数量])

書類情報テーブル

自社情報テーブル

テーブル名: P_自社情報

項目必須/任意説明
自社名(請求者の名前)必須会社名または個人名「株式会社〇〇商事」
住所任意請求元の所在地「東京都千代田区〇〇1-2-3」
電話番号請求元の連絡先「03-1234-5678」
振込先情報銀行名・支店名・口座番号など「〇〇銀行 本店 普通 1234567」

自社情報テーブル

取引先情報テーブル

テーブル名: P_取引先情報

項目必須/任意説明
取引先名(請求書の交付を受ける事業者名)必須顧客の会社名・屋号など「株式会社サンプル」
担当者任意取引先の担当者宛名「田中」
振込手数料の負担振込時に手数料を負担する側「相手」または「自社」

取引先情報テーブル

取引内容テーブル

テーブル名: T_取引内容

書類フォーマット内に設置する「取引内容の一覧表」とは項目が少し異なります。 金額については、計算で使用する値を分割して格納します。 商品IDはプルダウンから選択できるようにし、 商品リストから「商品名」「税抜単価」「税額」を引用するようにします(後述)。

項目必須/任意説明
取引日必須商品やサービスの提供日「2025/03/15」
商品ID任意品名・サービス名・作業内容の識別番号「A-001」
商品名必須品名・サービス名・作業内容など「Webサイト制作」
税抜単価1単位あたりの金額(税抜)「¥50,000」
税率1単位あたりの消費税額の割合「0.1」
税額1単位あたりの消費税額「¥5,000」
数量数量(個数、時間など)「4」

上記のテーブルを作成したら、P_書類情報請求金額列に以下の数式 (各商品の「税額×数量+税抜単価×数量」の和) を記入します。 =SUMPRODUCT(T_取引内容[税額],T_取引内容[数量]) +SUMPRODUCT(T_取引内容[税抜単価],T_取引内容[数量])

取引内容テーブル

出力エリアの作成

書類フォーマットを出力エリアに作成していきます。 「リンクされた図」や加工した文字列などを配置する場合には、 作業エリアで作成してから、 それを参照して出力エリアに配置します。

1. 取引内容の一覧表を配置する

最初に、書類内に表示する「取引内容の一覧表」を配置します。 入力エリアのT_取引内容テーブルを、パワークエリで参照・加工して別のテーブルを作ります。

  1. パワークエリ起動
    1. T_取引内容テーブルのセルを選択 > データタブ > テーブルまたは範囲からボタン
  2. 摘要 列の作成
    1. 列の追加タブ > カスタム列ボタンを押してカスタム列ウィンドウを開く
    2. 新しい列名欄に摘要を記入
    3. カスタム列の数式欄に=([商品ID]??"")&" "&[商品名]を記入(=は初めから記入済み)
    4. OKボタンでカスタム列ウィンドウを閉じる
    5. 追加した摘要列を取引日列の右側にドラッグ&ドロップで移動
  3. 数量 列の移動
    1. 数量列を摘要列の右側にドラッグ&ドロップで移動
  4. 税抜単価 列の移動
    1. 税抜単価列を数量列の右側にドラッグ&ドロップで移動
  5. 明細金額 列の作成
    1. 列の追加タブ > カスタム列ボタンを押してカスタム列ウィンドウを開く
    2. 新しい列名欄に明細金額を記入
    3. カスタム列の数式欄に=[数量]*[税抜単価]を記入 =は初めから記入済み)
    4. OKボタンでカスタム列ウィンドウを閉じる
    5. 追加した明細金額列を税抜単価列の右側にドラッグ&ドロップで移動
  6. 不要な列の削除
    1. Shiftを押しながら商品ID税額列を選択 商品ID, 商品名, 税率, 税額列を同時選択状態にする)
    2. ホームタブ > 列の削除ボタン
  7. テーブルの設置
    1. ホームタブ > 閉じて読み込むプルダウン > 閉じて次に読み込む...ボタンでパワークエリを閉じる
    2. データのインポートウィンドウで下記の状態にする > OKボタン
      • テーブルを選択
      • 既存のワークシートを選択, =$B$11あたりのセルを指定
      • このデータをデータモデルに追加するは未チェック
  8. テーブルの設定
    1. テーブルデザインタブ > プロパティボタン > 列の幅を調整するのチェックを外す > OKボタン
    2. テーブルデザインタブ > フィルターボタンのチェックを外す
    3. テーブルスタイルや行の縞模様などを変更し、テーブルのデザインを変更(任意)
    4. テーブルデザインタブ > テーブル名欄で取引内容の一覧表を記入(任意)

ここで作成した表の列が、書類フォーマット中の 列の基準となります

パワークエリを使った取引内容の一覧表の挿入

2. 書類フォーマットの形を作る

上記で作成したテーブルから参照する形で、 出力エリアに必要項目を追加していき、 レイアウトを整えます。 テーブルから直接参照するのではなく、 一度、数値や文字列を加工してから参照したい場合は、 作業エリアで加工を行います。

出力エリアの列は固定すると作業しやすい

出力エリア上に表示された書類フォーマットを常に見える状態にしていると、作業がしやすくなります。

設定手順:
入力エリアの左端の列を選択 > 表示タブ > ウィンドウ枠の固定

出力エリアの 列の基準は取引内容の一覧表 であるため、 以下がポイントになります。

  • 列の数・幅の調整を行う場合は、取引内容の一覧表のレイアウトが崩れないようにする。
  • テキストのスタイル・位置調整では、下記を活用する:
    • リンクされた図 ※1
    • テキストボックス ※1
    • セルの書式設定 > 配置 > 「横位置:選択範囲の中央」、インデント
    • (セルの結合)

次の画像が、書類フォーマットの例です。

書類フォーマット作成の構造

※1 構造化参照は使えない

「リンクされた図」や「テキストボックス」では、
セルを参照できますが、構造化参照は使用できません
INDIRECT関数を利用したとしても)。
そのため、テーブルから値を参照する場合は、
通常の相対参照/絶対参照を使用する必要があります。

3. 書類フォーマットの出力範囲設定をする

書類フォーマットのエリア(出力エリア)のみが印刷されるように設定します。

  1. 書類のフォーマットの列を選択 > ページレイアウトタブ > 印刷範囲プルダウン > 印刷範囲の設定
  2. 書類のフォーマットの列を選択 > ページレイアウトタブ > 拡大縮小印刷欄の横幅:1ページを選択
  3. ページレイアウトタブ > 余白プルダウン > ユーザー設定の余白...

    ページ中央水平にチェック > OKボタン

4. 商品リストと連携する

商品リストを作成し、 T_取引内容テーブルに商品・サービスを追加するときに、 データを参照できるようにします。

  1. シート名を商品リストの新規シートを作成(名前は任意)
  2. 商品リストシートに下記の列名を持つ、テーブルM_商品を作成(A1セルに設置)
    • 商品ID
    • 商品名
    • 税抜単価
    • 税率
  3. T_取引内容テーブルの商品ID列に入力規則を設定
    1. 商品ID列の全データを範囲選択 > データタブ > データの入力規則を選択
    2. データの入力規則ウィンドウの設定タブで下記を設定
      • 入力値の種類:リスト
      • 空白を無視するのチェックを入れる
      • ドロップダウンリストのチェックを入れる
      • 元の値: =INDIRECT("M_商品[商品ID]")を記入
  4. 商品名, 税抜単価, 税率, 税額列に下記の数式を記入
    • 商品名列: =VLOOKUP([@商品ID],M_商品,COLUMN(M_商品[商品名]))
    • 税抜単価列: =VLOOKUP([@商品ID],M_商品,COLUMN(M_商品[税抜単価]))
    • 税率列: =VLOOKUP([@商品ID],M_商品,COLUMN(M_商品[税率]))
    • 税額列: =ROUNDDOWN([@税抜単価]*[@税率],0)
商品リストとの連携

5. 入力手順のメモを追加する

利用者向けのメモや注意書きを追加し、記入時に迷わないようにします。 下記手順のコメントは一例なので、各々、わかりやすいメッセージを記入してください。

メモ書きや注意書きの方法

  • 入力エリアのセルに記入
  • 入力規則の「入力時メッセージ」に記入
  • コメントの挿入を使って記入
  • テキストボックス・図形に記入
    (出力エリア内に配置する場合は、オブジェクトを印刷するをOFFにする)

T_取引内容テーブルの説明書き:

  1. テーブルの上のセルに 「↓ テーブルを更新後、 「すべて更新」を実行すること!」 を記入
    • ※ コメントは、他のテーブル内に入らないように注意
  2. 商品ID列データの入力規則の「入力時メッセージ」に下記を設定
    • タイトル:プルダウンから選択 or 空白
    • 入力時メッセージ:商品IDがプルダウンにない場合は空白にする
  3. 商品名, 税抜単価, 税率列データの入力規則の「入力時メッセージ」に下記を設定
    • タイトル:VLOOKUP数式を記入 or 値を手入力
    • 入力時メッセージ:VLOOKUP数式の結果が#N/Aの場合は、値を直接入力する
コメント追加後のT_取引内容テーブル

ファイルの使い方

書類の作成方法

作成したテンプレートファイルから書類を作成する方法です。
※「セキュリティの警告 外部データ接続が無効になっています」と表示される場合は「コンテンツの有効化」を選択する

  1. 作成したテンプレートファイルから、新規ファイルを作成
  2. 入力エリアの4つのテーブル(P_書類情報, P_自社情報, P_取引先情報, T_取引内容)に記入
    • P_自社情報の変更頻度は通常、少ない。
    • T_取引内容の記入・修正後は、取引内容の一覧表に反映するため、データタブのすべて更新ボタンを押す必要あり(Ctrl + Alt + F5)。
  3. PDF出力する場合は、請求書シートを開いた状態で、ファイルタブのエクスポート > PDF/XPSの作成ボタン > ファイル名をつけて保存

テンプレートから作成した書類ファイル(.xlsx)の保存も忘れないようにしましょう。

商品リストデータの更新方法

T_取引内容テーブルで選択できる商品リストを更新する場合は、 商品リストシート中のM_商品テーブルのデータを修正、追加 します。

まとめ

  • テーブル参照型テンプレートにすることで、修正・転用が簡単になる
  • 入力規則を設定すれば、データの一貫性と精度が上がる

請求書テンプレートを「書類」としてだけでなく、 データ活用の出発点として設計することが重要です。

外部ファイルのデータを参照することで、 さらに書類作成の効率化が図れます。 たとえば、商品リストや顧客情報リストを1ファイルとして切り出し、 これを参照して情報を入力することが可能になります。 詳しくはこちら