弥生会計インポート用CSVをエクセル関数で作る(3)消費税コード

今回は、
弥生会計インポート用ファイルに消費税コードを入れていきます。

消費税コードって普通は入力しないよね?

実際に記帳作業をしたことがある方ならば、
理解しやすいと思うのですが、

実際問題として、
消費税コードを手で入れるケースは、ほとんどありません。

なぜかというと、
ほとんどの場合は、
勘定科目が決まると消費税コードも自動で決まってしまうからです。

ですから、
基本的には、
あらかじめ、次のような勘定科目と消費税コードの対応表を作って、
勘定科目を入れると、自動で消費税コードが決まるように作ろうと思います。
勘定科目と消費税コードの対応表の例

ただし、
ときどき、消費税コードを個別に入力したい、というケースもあります。
(例えば、交際費は普通は課税仕入ですが、
 商品券をプレゼントする場合は非課税仕入になります)

ですので、基本方針として、

  • 元の出納帳データに消費税コードが入っている場合は、
    その消費税コードを入れる
  • 出納帳データに消費税コードが入っていない場合は、
    勘定科目と消費税コードの対応表に従って消費税コードを入れる

というロジックを組み込もうと思います。

「Xのときは」という表現が出てきたらif関数を使う

さて、では、上のロジックを、
具体的な計算式に落とし込んでいきましょう。

まず、上の文章を見ると、
「XのときはY、そうじゃないときはZ」
という形になっていることがわかります。

具体的に言うと、
X:元の出納帳データに消費税コードが入っている場合
Y:その(=元の出納帳データに入力されている)消費税コードを使う
Z:勘定科目と消費税コードの対応表に従って消費税コードを入れる
です。

「XのときはY、そうじゃないときはZ」というようなことをしたい場合には、
if関数というのを使って、下記のような感じの式に表せます。

=if(X,Y,Z)

あとは、X、Y、Zの部分を、エクセルの計算式で書ければOKです。

ここでは、
Zは後回しにするとして、X,Yだけを考えてみます。

X,Yだけであれば、次のように、比較的簡単に書けます。

X:預金1!F18<>""
Y:預金1!F18

※預金1シートのF列は、
 普段使わないので非表示になっているのですが、
 消費税コードを入れるためにあけてあります。

上の式だと、実際には困ったことが起きる

さて、
実際に上のような式を入れてみると、実は、困ることがあります。

どういう場合かというと、
「交際費/普通預金」
というような仕訳があって、
出納帳上、交際費を「非課税仕入」として入力した場合に、

上のロジックそのままだと、

元の出納帳データに消費税コードが入っている場合に
借方、貸方「両方とも」
その消費税コードを使うことになってしまいます。

(その相手科目側の「普通預金」のほうも、
消費税コードが「非課税仕入」になってしまうのです。)

ただ、
実際に消費税コードを「非課税仕入」にしたいのは、「交際費」の側だけで、
「普通預金」のほうは「対象外」になってくれないと困ります。

そこで、
消費税コードが入っていて、しかも、

  • E1セル(あるいはK1セル)に入力されている勘定科目
  • 預金1シートのH14セルに入力されている勘定科目
    (=出納帳自体をどの科目で起票するか、指定しているセルです)

が一致しない場合だけ、入力された消費税コードを引っ張ってくるようにします。

修正後のX,Yは、次のようになります。

X:and(E1=預金1!$H$14, 預金1!F18<>"")
Y:預金1!F18

対応表から、値を引っ張ってくるためにはvlookup関数を使う

あとは、
「Z:勘定科目と消費税コードの対応表に従って消費税コードを入れる」
の部分をどう入れるか、という話になるわけです。

対応表があって、その表から値を引っ張ってきたい、という場合に、
一番よく使うのが「vlookup関数」です。

今回も、
・勘定科目と消費税コードの対応表があって、
・ある勘定科目に「対応する」消費税コードを入力したい
という話ですので、vlookup関数を使うことになります。

vlookup関数の意味がわかれば、必要な情報もわかる

vlookup関数は、
使い道がわからない、とか、
どういう引数(=ひきすう。関数を使うときに必要な情報)が必要かわからない、
という話をよく聞きますが、

1.キーとなる「データ」があって(例:「交際費」)
2.ある対応表から(例:勘定科目名と消費税コードの対応表)
3.対応する「データ」(例:「課税仕入込」)を探す

というのが、vlookup関数の「目的」ですから、
当然、これらの情報が最低限、必要になるわけです。

実際に計算式で表してみると

上記を、エクセルに実際入力する形で表現すると、
1.何をキーにして探すの?(=「E1」セル あるいは 「K1」セル)
2.どの表を見ればいいの?(=「消費税対応!$A$1:$B$999」 )
3.どんな情報がほしいの?(=「2」←A列を含めて左から「2」列目の情報 という意味)
となります。

実際にvlookup関数を使う場合には、上記の他に、
4.「検索の仕方」を指定する(慣れないうちは「false」決め打ちでOK)
も必要となります。

ですので、これらを合わせると、
「Z:勘定科目と消費税コードの対応表に従って消費税コードを入れる」
に対応する計算式は、

Z:vlookup(E1, 消費税対応!$A$1:$B$999, 2, false)

となります。

これで、
「=if(X,Y,Z)」の中身である「X」「Y」「Z」のすべてが出そろいました。

最終的な計算式は、

=if(and(E1=預金1!$H$14, 預金1!F18<>""), 預金1!F18, vlookup(E1, 消費税対応!$A$1:$B$999, 2, false) )

となります。

消費税コードを入れる式

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。