エクセルでインボイス登録番号をチェックする3つの方法
エクセルでインボイスの登録番号が有効かをチェックする
2023年10月から始まるインボイス制度で、インボイス(適格請求書)に登録番号が書かれます。
WEBSERVICE関数を使うと、その登録番号が有効なものかどうかをエクセルでまとめてチェックできます。
わざわざ国税庁のホームページで登録番号を入力する必要はありません。
このページでは、登録番号をチェックする方法を「3種類」紹介したいと思います。
- 数式は「方法1」が一番簡単です。ExcelAPIという外部サービスを使うことを許容できるのであればおすすめです
- 外部サービスを使いたくない場合には、国税庁のAPIが使えるなら「方法2」がおすすめです
- どちらも難しい場合には、「方法3」を使いましょう
この記事の目次
方法1: ExcelAPIを使う
数式
次の数式を入れると、ExcelAPIを使って、適格請求書発行事業者かどうかを確認できます。
=WEBSERVICE("https://api.excelapi.org/company/invoice_check?id="&A2)
数式の簡単な解説
WEBSERVICE関数を使って、固定のURL「https://api.excelapi.org/company/invoice_check?id=」にA2セルの値を結合したURLにアクセスし、「登録」「未登録」の別を取得できます。
長所
特別な手続きなしに使えます。また、数式がとても簡単です。
注意点
ExcelAPIは、国税庁とは無関係の第三者が作成したサービスです。
国税庁以外の第三者を介する分、誤ったデータを取得してしまうなどのトラブルが生じる可能性もありますので、注意してください。
方法2: 国税庁のAPIを使う
数式
国税庁のAPIにアクセスするためのアプリケーションIDの発行を受けている場合には、国税庁が提供しているAPIにアクセスして、適格請求書発行事業者かどうかを確認できます。
=IF( FILTERXML( WEBSERVICE("https://web-api.invoice-kohyo.nta.go.jp/1/num?id=" & "【アプリケーションID】" & "&number=" & A2 & "&type=11" ), "/announcements/count" )=0, "登録なし", "登録あり" )
※上記数式中の【アプリケーションID】の部分を、国税庁から発行されたアプリケーションIDに置き換えてください
アプリケーションID発行登録は、下記から行えます。
数式の簡単な解説
- (a) WEBSERVICE( ... )
-
WebAPIを呼び出して、XMLデータを取得します。
括弧内では、WebAPIのURLを作成しています。
具体的には、固定URL「https://web-api.invoice-kohyo.nta.go.jp/1/num」に続けて、下記の引数を「?」や「&」で結合した文字列を作成し、そのURLを呼び出します。
- 「id=...」で、アプリケーションID
- 「number=...」で、(A2セルに入力した)登録番号
- 「type=11」で、レスポンスの形式(=XML形式)
このようにしてWebAPIを呼び出すと、XMLデータが得られます。
この数式で、実際に組み立てられたURLのイメージは次のようなものになります。
https://web-api.invoice-kohyo.nta.go.jp/1/num?id=applicationid&number=T1234567890123&type=11
- (b) FILTERXML( ... , "/announcements/count")
-
取得したXMLデータから、FILTERXML関数を使って必要な情報を抽出します。
得られるXMLファイルは、次のような形をしています。
<?xml version="1.0" encoding="UTF-8"?> <announcements> ... <count>1</count> ... </announcements>
FILTERXML関数の2つ目の引数で「"/announcements/count"」と指定して、この「
1 」の部分の値を取得します。 - (c) IF( ... =0, "登録なし", "登録あり")
-
(b)で取得した値に応じて、適格請求書発行事業者登録の有無を判定し、その旨を表示します。
- 「0」なら登録なし
- 「1」なら登録あり
と表示します。
長所
国税庁のAPIに直接接続するので、信頼性の高い正しい情報が取得できます。
注意点
この方法を使うためには、国税庁のAPIにアクセスするための「アプリケーションID」が必要です。
アプリケーションIDを取得していない場合には、下記ページから、アプリケーションIDの発行登録をして使ってください。
方法3: 国税庁の適格請求書発行事業者公表サイトをスクレイピングする
数式
次の数式を入れると、国税庁の適格請求書発行事業者公表サイトをスクレイピングして、適格請求書発行事業者かどうかを確認できます。
=IF( ISNUMBER(FIND("エラー情報", WEBSERVICE("https://www.invoice-kohyo.nta.go.jp/regno-search/detail?selRegNo=" &SUBSTITUTE(A2, "T", "")) )), "登録なし", "登録あり" )
数式の簡単な解説
数式の内側から読んでいきます。
- (a) SUBSTITUTE(A2, "T", "")
-
A2セルの内容から「T」を取り除いた文字列を作ります(例:「T1234567890123」→「1234567890123」)
- (b) WEBSERVICE( ... )
-
「https://www.invoice-kohyo.nta.go.jp/regno-search/detail?selRegNo=」に「(a)で作成した文字列」を結合したURLにアクセスし、結果を取得します。
- (c) FIND("エラー情報", ... )
-
(b)で取得した文字列に「エラー情報」という文字が含まれているかを調べます。
「エラー情報」という文字が含まれていれば、その文字が何文字目に出現したかを表す「数値」、含まれていない場合には「#VALUE!」エラーが返されます。
- (d) IF(ISNUMBER( ... ), "登録なし", "登録あり")
-
(c)の結果が数値(=(b)で取得した文字列に「エラー情報」が含まれる)であれば「登録なし」、それ以外の場合には「登録あり」と表示します。
長所
特別な手続きなしに、国税庁のページから情報を直接取得できます。
注意点
この方法は、実質的にスクレイピング(=人間が見る用の画面を解析して計算をしている)をしていることになるため、検索画面の表示レイアウトが変わると、正しく計算されない可能性があります。
具体的には、国税庁の適格請求書発行事業者公表サイトの検索結果のページを見て、適格請求書発行事業者かどうかを判断しています。
先ほどの数式では、下記キャプチャの2画面目(検索結果ページ)のデータを取得・解析して、登録番号の有無を判断しています。
↓ 検索結果が表示される
このように、人間が見るための画面を解析して計算をしているため、レイアウトが変わると正しい情報を取得できない場合があります。注意して使うようにしてください。
まとめ
このページで紹介した3種類の方法の中では、数式は「方法1」が一番簡単です。ExcelAPIという外部サービスを使うことを許容できるのであれば「方法1」が、一番おすすめです。
外部サービスを使いたくない場合には、
- 国税庁APIが使えるなら「方法2」
- 無理なら「方法3」
を使うことをおすすめします。