- 「毎月、
大量のデータ一覧から手作業で請求書を作っていて時間がかかる…」 - 「マクロ/VBAを使えば自動化できるのは知っているけれど、
コードを書くのはハードルが高いし、 引き継ぎも不安。 」
Excel(エクセル)
本記事では、

送付・受領・入金確認などを含めて請求業務全体を効率化したい場合は、
Excelのバージョン
本記事は、
環境によっては、
Power Queryは「複数行を抽出する処理を、
Power Query(パワークエリ)
Power QueryはExcel標準機能の1つです。
「セル単位で処理をする関数」

Power Queryはデータ更新がリアルタイムではなく、
Power Queryを使う理由は、
- 複数セルを一度に出力できる
- 難易度が低い
1. 複数セルを一度に出力できる
「1つの条件(請求書Noなど)
- 関数の場合:
- VLOOKUP関数では1セルしか出力できない。
- スピル機能を使えば複数セルの出力が可能だが、
古いExcel(2016以前) では使用できない。 - スピル機能は、
出力範囲に記入済みセルがあると #SPILL! エラーが発生する。
- VLOOKUP関数では1セルしか出力できない。
- Power Queryの場合:
- 複数セルを一度に出力できる。
- Excel 2016以降で標準利用可能(2010、
2013もアドインで対応可能) 。 - 出力先に記入済みセルがあっても、
新規の行・列として挿入される。
- 複数セルを一度に出力できる。

今回はPower Queryを、
2. 難易度が低い
Power Query は、
一方で マクロ/VBA は自由度が高い反面、
ただし関数も併用する
単純な処理のみを行う場面では、

ここでは XLOOKUP 関数をメインに使用していますが、
ここでは、

具体的には、
VLOOKUP や FILTER 関数で行っている処理を
マスタテーブルも活用できるように
この工程は最も重要です。
Power Queryを使い、
テーブルの準備
T_請求書明細をPower Queryに事前取り込み
T_請求書明細とP_請求書Noをマージ
テーブルP_請求書NoをPower Queryで取り込み、

行っていることは VLOOKUP のように、
出力テーブルの整形
Power Queryではデータ更新に [更新] 操作が必要
Power Queryは、
元のデータを変更した場合は、
- [データ] タブの [すべて更新] を選択
- Power Queryで出力したテーブルを右クリック > [更新] を選択
工程1の出力テーブルを基に、
出力テーブルの列幅の自動変更をOFFに設定
書類フォーマットの用意
出力エリアに印刷範囲を設定
ここからは「入力補助」
テーブルの列の [名前の定義]
請求書明細の商品ID列にプルダウンメニュー設定
工程3と同様に「入力補助」
テーブルの準備
テーブルの列を [名前の定義] に追加
得意先IDの入力欄にプルダウンメニュー設定
上記で作成したシステムを使用する際は、
-
データの蓄積
売上が発生するごとに、T_請求書明細 テーブルに新しい行を追加。 -
発行情報の入力
「入力エリア」
にある以下のパラメータを書き換え: - P_請求書No:発行したい番号
- P_得意先ID:得意先のID
- P_請求書情報:その他の情報(発行日や備考など)
-
データの更新
以下のいずれかを行い、
テーブルの更新操作を実行。 - [データ] タブの [すべて更新] を選択
- Power Queryで出力したテーブルを右クリック > [更新] を選択
-
出力
内容に間違いがないか確認し、
印刷・PDF出力を行う。
更新忘れに注意!
値を書き換えただけでは明細テーブルは変わりません。
「書き換えたら更新」
今回紹介した方法では、
一方で、
- 請求書をメールで送付 / 請求書を郵送する
- 取引先から届いた請求書を受領・管理する
- 入金状況を確認する
- 入金消込を行う
請求書の作成だけでなく、
CLOUDPAPERという選択肢
請求業務専用のクラウドサービスとして、
Excelでの請求業務や書類管理に手間を感じている場合は、
本記事では、
本システムは主に、
- 関数:単純な処理に使用。
- Power Query:複数セルを一度に出力する場所に使用。
Power Queryは、
参考:» Excelのクエリとは?パワークエリでできること【活用例・業務改善方法】
Excelで請求書作成だけでなく、





![Excelの[データ]タブから[テーブルまたは範囲から]を選択してT_請求書明細を取り込む画面](/_next/static/chunks/images/260126a/260126a-055_1920.png)
![Power Queryエディターで[閉じて読み込む]メニュー内の[閉じて次に読み込む...]を選択する画面](/_next/static/chunks/images/260126a/260126a-056_1920.png)
![[データのインポート]ダイアログボックスで[接続の作成のみ]を選択してOKを押す画面](/_next/static/chunks/images/260126a/260126a-057_1920.png)
![P_請求書Noのセルを選択し[データ]タブの[テーブルまたは範囲から]をクリックする画面](/_next/static/chunks/images/260126a/260126a-060_1920.png)
![Power Queryエディターで[クエリのマージ]ボタンをクリックする画面](/_next/static/chunks/images/260126a/260126a-061_1920.png)




![Power Queryエディターの画面左上にある[閉じて読み込む]ボタン](/_next/static/chunks/images/260126a/260126a-075_1920.png)
![[データのインポート]ダイアログで[テーブル]を選び読み込み先のセルを指定する画面](/_next/static/chunks/images/260126a/260126a-076_1920.png)






![セル範囲を選択し[ページレイアウト]タブの[印刷範囲]から[印刷範囲の設定]を選択する画面](/_next/static/chunks/images/260126a/260126a-095_1920.png)
![[ページレイアウト]タブの[拡大縮小印刷]で「横」を「1ページ」に設定する画面](/_next/static/chunks/images/260126a/260126a-096_1920.png)




![「名前の定義」ダイアログで名前を「商品ID」、参照範囲を「=M_商品[商品ID]」に設定する画面](/_next/static/chunks/images/260126a/260126a-110_1920.png)




![「名前の定義」ダイアログで名前を「得意先ID」、参照範囲を「=M_得意先[得意先ID]」に設定する画面](/_next/static/chunks/images/260126a/260126a-130_1920.png)


