見出し画像

「名前付き関数」について.3 課税区分に応じて消費税総額から消費税額を算出する【関数】【Googleスプレッドシート】【経理】【freee会計】【弥生会計】

名前付き関数シリーズ3回目です。
今回は、構成は簡単ですけど、メンテナンスが大変な関数にトライしてみました。
会計ソフトにCSV登録するとき、アップロードする項目に、総額と消費税額が必要な形式を想定しています。
手順です

複数の消費税区分から、0%、8%、10%の設定を選択する

実務上では、8%だけではなく「課対仕入8%」「対象外」など、複数の項目設定から選択する必要があるので、ifで単純選択するのもさらに面倒になります。課税区分には文字列に「8%」、「10%」、「含まれない」の3種類であることを前提に、ワールドカード検索で条件分岐しました。

ワイルドカードの説明


「あああ」が含まれていれば。のような検索設定です。
「*あああ*」の表現で、「AAAあああBBB」や「XあああYYYY」などであれば該当するという表記です。
条件文IFで使ってみます。
=if(B5=*10*,10%,"N")
「10が含まれていれば、10% そうでなければ、N」という試し書きです。

こちら、エラーになってしまいます。

条件文「IF」はワイルドカードに対応してないということですね。


同じような関数で「COUNTIF」は対応しているので、こちらを使います。
=COUNTIF(B5,"*10*")

「1」が返りましたね。

含まれている数字に応じて、8% or 10% or 0% が返せそうです。

では、つなげましょう

消費税の税率と、それを使って計算する

’=IF(COUNTIF(B11,"*8*"),0.08,IF(COUNTIF(B11,"*10*"),0.1,0))

この計算式で、「8%」「10%」「0%」のどれかになります。
続いて、その結果を使って、総額から消費税額を算出する計算式です。

=ROUNDDOWN(((F11/(1+C11)*C11)),0)

では、その計算式を一つにまとめましょう

二つのセルの結果を一つのセルに

=ROUNDDOWN(((F17/(1+IF(COUNTIF(B17,"*8*"),0.08,IF(COUNTIF(B17,"*10*"),0.1,0)))*IF(COUNTIF(B17,"*8*"),0.08,IF(COUNTIF(B17,"*10*"),0.1,0)))),0)

完成!
ですけど、長すぎますね!
名前付き関数を使いたくなりますよね。

=TAX(B23,F23)

完成しました!

新規作成ウィザード

前回の追加方法は、すべて手入力で作成しました。
https://note.com/gas_keiri/n/neded804e8c91
式をクリックすると、ウィザード利用が起動して名前付き関数にするか聞いてきてくれました。作りたくないときはちょっとうざい機能のような気もします。
そちらに沿って行くと、数式の定義を自動作成してくれてます。
引数は自分で登録しましょう。「課税区分」「総額」と入力しました。

引数の候補を引き合わせる

これが便利です。作成した引数と、ダミーで入っているセルを引き合わせてくれます。

あとは前回のと同じです。
まとめです
これだけややこしいのであれば、そのまま使うより事故が減りますね!

「名前付き関数」はエクセルでは対応してないようです。

エクセルでは、今まで通り、「セル範囲に名前を付ける」ことはできますが、「名前付き関数」は対応していないようです。(2022年9月24日)
今回のシートです。






この記事が参加している募集

つくってみた

どんな記事ならサポートしてみようと思えるか、ご要望ありましたら教えてくださいね。