• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでVlookup関数を使って計算式を作りたい)

VBAでVlookup関数を使って所得税の計算式を作る方法

このQ&Aのポイント
  • VBAのVlookup関数を使って所得税の計算式を作りたい場合、Select case文を活用することで計算方法を選択することができます。
  • 具体的な計算方法は、所得税の基準額と税率を格納したシートを作成し、Vlookup関数を使って該当する税率を取得します。
  • そして、入力されたデータを参照して所得税を計算することができます。Application.WorksheetFunction.Vlookup関数を使用することで、簡単に計算式を作成することができます。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

Select Case で判定するなら Function 住民税( 基本給 as Single ) as Single   dim 税率 as Single, 控除 as Single   Select Case 基本給   case is <1     MsgBox "基本給の設定を点検してください"     住民税 = -1     Exit Function   case 1 to 195000     税率 = 0.05     控除 = 0   case 19500.001 to 3300000     税率 = 0.10     控除 = 97500   case 3300000.001 to 6950000     税率 = 0.20     控除 = 427500   case 6950000.001 to 9000000     税率 = 0.23     控除 = 636000   case 9000000.001 to 18000000     税率 = 0.33     控除 = 1536000   case else ' 18000000を超える場合     税率 = 0.40     控除 = 2796000   end select   住民税 = 基本給 * 税率 - 控除 End Function といった具合でしょう ・・・ # お金を扱うならSingleよりCurrency(通貨型)でやったほうがいいかも

その他の回答 (1)

  • howarage
  • ベストアンサー率20% (2/10)
回答No.1

VBAじゃなく、Excelの関数だけでできるかと思います。 まず、所得税シートを以下のように作り直します。 所得   税率   控除 0     5%    0 1950001  10%   97500 3300001  20%   427500 6950001  23%   636000 9000001  33%   1536000 18000001  40%   2796000 で、所得を参照したVLOOKUP関数を使います、 =基本給のセル*Vlookup(基本給のセル, 所得税表の範囲, 2, True ) - Vlookup(基本給のセル,所得税表の範囲,3,True ) ※所得税の計算方法知らないので、まちがってたらすいません。 ここで、Vlookupの4番目の引数をTrueにするのがミソです。こうすると検索値未満の最大の値がヒットします。なので表の所得は1足した額にしてます。

関連するQ&A