
アルバイトの人に給与を支払う予定です。
手取額を丸い数字(10,000円など)にしたい場合、源泉所得税の金額を逆算(グロスアップ)したい場合、少額は簡単にできたのですがある程度の金額を超えた時、訳がわからなくなってしまいました。
やりたいことは、
1.アルバイトに渡す手取り金額を0.96937で割った数字(a)が85,384円未満であれば、割返した数字に3.063%乗じた金額が源泉所得税額。
2.(a)の数字が85,384円以上であれば、国税庁HPから出ている税額表(HP https://www.nta.go.jp/publication/pamph/gensen/z …)から数字を拾う。(今回は、他でお仕事されている方なので乙欄です)
3.2で求めた税額と手取額の合計額が税額表の税額と一致するまで反復計算
例 手取り18万円とすると、源泉所得税額の金額は20,900円となり、支給総額は200,900円。
↑これを簡単にExcelでできれば・・・と思っています。
毎回自力で計算していますが、間違えるのではないかと毎回ドキドキしています。
どなたかお力を貸して下さい。
よろしくお願いします。

No.8ベストアンサー
- 回答日時:
C1に計算月を指定するものとします。
前回のマクロは全て破棄してください。
以下のマクロを標準モジュールに登録してください。
---------------------------------------------------------
Option Explicit
Const rate As Variant = 0.96937 '割率
Const Taxrate As Variant = 0.03063 '掛率
Const minVal As Variant = 85384 '総支給額の閾額
Const unit As Long = 100 '単位円
Public Sub 税額計算()
Dim maxrow As Long
Dim row As Long
Dim getRow As Variant
Dim tax As Variant
Dim total As Variant
Dim errmsg As String
Dim result As Boolean
Dim mm As Long
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim col As Long
Set sh1 = Worksheets("税額計算")
Set sh2 = Worksheets("月額表")
mm = sh1.Cells(1, "C").Value
If mm < 1 Or mm > 12 Then
MsgBox ("計算月エラー")
Exit Sub
End If
col = (mm - 1) * 6 + 2
maxrow = sh1.Cells(Rows.Count, 1).End(xlUp).row ' A列最終行を求める
For row = 5 To maxrow
'B列~E列をクリア
sh1.Cells(row, col + 2).Value = ""
sh1.Cells(row, col + 3).Value = ""
sh1.Cells(row, col + 4).Value = ""
sh1.Cells(row, col + 5).Value = ""
result = GetTax(sh1.Cells(row, col + 1).Value, tax, total, getRow, errmsg, sh2)
If result = True Then
'正常終了なら、税額、総支給額、月額表の行番号を設定
sh1.Cells(row, col + 2).Value = tax
sh1.Cells(row, col + 3).Value = total
sh1.Cells(row, col + 4).Value = getRow
Else
'異常終了ならエラーメッセージを設定
sh1.Cells(row, col + 5).Value = errmsg
End If
Next
MsgBox ("完了")
End Sub
'税額算出
Private Function GetTax(ByVal tedori As Variant, ByRef tax As Variant, ByRef total As Variant, ByRef getRow As Variant, ByRef errmsg As String, ByVal ws As Worksheet) As Boolean
Dim val As Variant
Dim row As Long
Dim wtax As Long
Dim wtotal As Long
tax = Null
total = Null
getRow = Null
errmsg = ""
GetTax = False
If tedori = "" Then
Exit Function
End If
If IsNumeric(tedori) = False Or tedori < 1 Then
errmsg = "入力エラー"
Exit Function
End If
If tedori Mod unit <> 0 Then
errmsg = "最小単位は" & unit & "円です"
Exit Function
End If
val = tedori / rate
val = Fix(val)
'総支給額が85384円未満の場合
If val < minVal Then
total = val
tax = total - tedori
GetTax = True
Exit Function
End If
'総支給額が85384円以上のケース(月額表の10行~350行までトライする)
For row = 10 To 350
If ws.Cells(row, "B").Value <> "" Then
'L列の税額+手取り額を総支給額とする
wtax = ws.Cells(row, "L").Value
wtotal = tedori + wtax
'該当条件にマッチした場合 (B列の値≦総支給額<C列の場合)
If wtotal >= ws.Cells(row, "B").Value And wtotal < ws.Cells(row, "C").Value Then
getRow = row
tax = wtax
total = wtotal
GetTax = True
Exit Function
End If
End If
Next
errmsg = "該当なし"
End Function

No.7
- 回答日時:
状況わかりました。
その場合、何月の計算を行うかを指定させた方が良いかと思います。
添付図のC1セル(黄色部分)に計算を行う月(1~12)を指定させ、その月の該当箇所の計算を行うのはいかがでしょうか。
(例では1月の月の箇所の計算を行うことになります)
もし、C1で困る場合は、他のセルをご提示ください。
又、年間を通した場合、人の増減もありますので、その人が計算対象の月に、いないことも考えられます。
その場合、手取り額が空白になりますが、今までは、エラーメッセージに「入力エラー」を表示していました。
このケースの場合、手取り額は意図的に空白にしたと考えられるので、この場合は、エラーメッセージを空白にしたほうが良いかと
思いますがいかがでしょうか。添付図の緑の部分(名前6の人の1月分の手取り)を参照ください。


No.6
- 回答日時:
>我が儘かもしれないのですが1年間を通じて1つのシートで計算したいので(年末の源泉徴収票作成用に)、横にどんどん追加していこうと考えたのですが、1つのシートに登録できるマクロは1つだけになるのでしょうか?
>(自分で、試行錯誤してモジュールを追加してみましたが、最初のところだけが自動計算され、他の所は何も動かなかったので・・・)
>イメージは、A列に氏名B列に手取り、C列に税額、D列に総支給額、E列に該当行、F列にエラーメッセージ、G列手取り、・・・と続いていくイメージです。
>不可能であれば、1月ずつシートを作成し、最後に串刺し計算したいと思います。(グロスアップ計算が自動でできたことだけでも奇跡のようなものなので)
すみません。よくわかりませんので、私が提示したような画像を提示していただけませんでしょうか?
windowsのアクセサリのSnipping Toolを使うと簡単に画像が切り取れます。
それをアップしてください。(私が提示した画像もSnipping Toolを使っています)

No.5
- 回答日時:
No2です。
以下のマクロを標準モジュールに登録してください。
必ず、”税額計算”と”月額表”のシートを作成してください。
”税額計算”のA列の2行目以降に手取り額を記入してください。(1行目は見出しです)
"月額表"はシートのコピーを行って作成してください。(コピペはしないほうが良いかと)
データのレイアウトがずれているとマクロが誤動作します。
"月額表"の10行~350行に乙の税額が記載されているので、それを対象にしています。
-----------------------------------------------------------
Option Explicit
Const rate As Variant = 0.96937 '割率
Const Taxrate As Variant = 0.03063 '掛率
Const minVal As Variant = 85384 '総支給額の閾額
Const unit As Long = 100 '単位円
Public Sub 税額計算()
Dim maxrow As Long
Dim row As Long
Dim getRow As Variant
Dim tax As Variant
Dim total As Variant
Dim errmsg As String
Dim result As Boolean
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("税額計算")
Set sh2 = Worksheets("月額表")
maxrow = sh1.Cells(Rows.Count, 1).End(xlUp).row ' A列最終行を求める
For row = 2 To maxrow
'B列~E列をクリア
sh1.Cells(row, 2).Value = ""
sh1.Cells(row, 3).Value = ""
sh1.Cells(row, 4).Value = ""
sh1.Cells(row, 5).Value = ""
result = GetTax(sh1.Cells(row, 1).Value, tax, total, getRow, errmsg, sh2)
If result = True Then
'正常終了なら、税額、総支給額、月額表の行番号を設定
sh1.Cells(row, 2).Value = tax
sh1.Cells(row, 3).Value = total
sh1.Cells(row, 4).Value = getRow
Else
'異常終了ならエラーメッセージを設定
sh1.Cells(row, 5).Value = errmsg
End If
Next
MsgBox ("完了")
End Sub
'税額算出
Private Function GetTax(ByVal tedori As Variant, ByRef tax As Variant, ByRef total As Variant, ByRef getRow As Variant, ByRef errmsg As String, ByVal ws As Worksheet) As Boolean
Dim val As Variant
Dim row As Long
Dim wtax As Long
Dim wtotal As Long
tax = Null
total = Null
getRow = Null
errmsg = ""
GetTax = False
If tedori = "" Or IsNumeric(tedori) = False Or tedori < 1 Then
errmsg = "入力エラー"
Exit Function
End If
If tedori Mod unit <> 0 Then
errmsg = "最小単位は" & unit & "円です"
Exit Function
End If
val = tedori / rate
val = Fix(val)
'総支給額が85384円未満の場合
If val < minVal Then
total = val
tax = total - tedori
GetTax = True
Exit Function
End If
'総支給額が85384円以上のケース(月額表の10行~350行までトライする)
For row = 10 To 350
If ws.Cells(row, "B").Value <> "" Then
'L列の税額+手取り額を総支給額とする
wtax = ws.Cells(row, "L").Value
wtotal = tedori + wtax
'該当条件にマッチした場合 (B列の値≦総支給額<C列の場合)
If wtotal >= ws.Cells(row, "B").Value And wtotal < ws.Cells(row, "C").Value Then
getRow = row
tax = wtax
total = wtotal
GetTax = True
Exit Function
End If
End If
Next
errmsg = "該当なし"
End Function
tatsu99 様
とっても詳しく教えて頂きありがとうございます!
できました!!
我が儘かもしれないのですが1年間を通じて1つのシートで計算したいので(年末の源泉徴収票作成用に)、横にどんどん追加していこうと考えたのですが、1つのシートに登録できるマクロは1つだけになるのでしょうか?
(自分で、試行錯誤してモジュールを追加してみましたが、最初のところだけが自動計算され、他の所は何も動かなかったので・・・)
イメージは、A列に氏名B列に手取り、C列に税額、D列に総支給額、E列に該当行、F列にエラーメッセージ、G列手取り、・・・と続いていくイメージです。
不可能であれば、1月ずつシートを作成し、最後に串刺し計算したいと思います。(グロスアップ計算が自動でできたことだけでも奇跡のようなものなので)
何度もすみませんが、もう一度お力を貸して頂けると大変嬉しいです。

No.4
- 回答日時:
No2です。
もし、マクロで実現する場合の前提です。
マクロ不可の場合は、No3、及び、この補足要求の回答は不要です。
手取額を丸い数字(10,000円など)にしたいということですが、
具体的には1万円単位でしょうか。それとも、千円単位、百円単位、十円単位でしょうか。
手取り額を入力時に、手取り額が指定された単位の整数倍になっていなければ、エラーにすることは可能です。
その場合、いくらの単位にするかをご提示ください。
尚、手取り額が1円単位でも、税額の算出は可能です。その場合は、総支給額が1円単位になります。
どちらを選択するかは質問者様のほうで決めてください。

No.2
- 回答日時:
マクロなら実現可能です。
添付図の「税額計算」のA列(青色部分)に手取り額を入力します。(複数行入力可能)
マクロを実行すると、B~Eに結果が表示されます。
B列:税額
C列:総支給額
D列:月額表で採用した税額の該当行
E列:エラーがあった場合のエラーメッセージ
上記のようなマクロで良ければ提供可能です。
月額表は、国税庁の「給与所得の源泉徴収税額表(月額表)(1から7ページ)」のexlcel(01-07.xls)の月額表をコピーしたものです。
(この月額表であってますか?)

No.1
- 回答日時:
確認させてください。
》 手取り金額を0.96937で割った数字(a)が85,384円未満であれば、
》 割返した数字に3.063%乗じた金額が源泉所得税額
2つの言葉「割った数字」と「割返した数字」との違いは?
上で仰っている「割返した数字」は具体的にどう計算された数字ですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 減税・節税 源泉給料 乙の支払 3 2023/03/12 17:27
- 投資・株式の税金 配当金を所得税・住民税共に総合課税で確定申告した場合の控除額について その2 3 2022/05/07 13:11
- 投資・株式の税金 配当金を所得税・住民税共に総合課税で確定申告した場合の控除額について 2 2022/05/06 22:51
- 印紙税 確定申告について 3 2022/08/02 23:59
- 財務・会計・経理 3月社会保険料が改定されました 3月1日〜3月31日を翌月25日に支払いしてる場合 社会保険料は、3 2 2023/04/07 09:59
- 確定申告 源泉徴収されているアルバイト収入の確定申告は不要ですか? 5 2023/07/12 08:27
- ふるさと納税 私立高校補助金について 1 2022/12/21 06:08
- 所得税 どなたかこの問題わかる方教えてください。よろしくお願いします。 所得税の計算体系を示したのち、所得税 3 2023/01/13 16:04
- 投資・株式の税金 配当金を所得税・住民税共に総合課税で確定申告した場合の控除額について その3 1 2022/05/07 22:16
- 所得税 確定申告の収入金額欄、源泉徴収額の記入方法について 1 2023/03/12 23:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
運送会社が商品を破損してしま...
-
田を貸した場合の消費税について
-
経理です。車検の時の勘定科目...
-
税込価格が5500円の商品を20%値...
-
被課税とは
-
『課税仕入れに係る支払対価の...
-
公文書公開に伴うコピー料金等
-
株 損切りしても手数料以外の税...
-
消費税を早く10%に上げて欲...
-
知識ゼロの夫婦を助けて下さい…...
-
アマチュア団体の出演謝礼に税...
-
【日本の中間層はほぼ無税って...
-
税の計算
-
DIY 小屋の登記と固定資産税
-
当方個人事業主で、メルカリな...
-
来年からのインボイス、国が消...
-
会社清算時の債権放棄について
-
外交員の報酬には消費税が必要...
-
国の懐具合と経済について、過...
-
デザイナーの事業区分
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
運送会社が商品を破損してしま...
-
確定申告:収入とは消費税込み...
-
田を貸した場合の消費税について
-
「消費税の納税義務者でなくな...
-
経理です。車検の時の勘定科目...
-
青色決算書「給与賃金の内訳」...
-
建設業の「安全協力費」の会計...
-
デザイナーの事業区分
-
自動車部品を個人輸入した際の...
-
印紙税額を求める関数
-
建設業者が工事保険をもらった...
-
公文書公開に伴うコピー料金等
-
エクセルで課税、非課税を自動...
-
消費税の区分について
-
課税売上高ってどの部分を指す...
-
消費税計算で誤差が生じるのは...
-
市役所と消費税
-
固定資産税・都市計画税の計算...
-
租税公課について質問です。 個...
-
アマチュア団体の出演謝礼に税...
おすすめ情報
mike_g 様
すみません。日本語の文章がおかしかったです。申し訳ありません。
具体的な数字で説明しますと・・・
手取金額を0.96937で割った数字というのは、乙欄の最低税額(給与に3.063%を乗じた金額)があるので、総支給額を仮計算するのに使いました。
例その1:手取り10,000円の時
10,000÷0.96937=10,315(85,384円未満なので、ここで計算終わり)
総支給額は10,315円、 税額は315円
続きます・・・
mike_g 様
続きその1です。
例その2:手取り180,000円の時
180,000÷0.96937=185,687円(1円未満切り捨て)
185,687>=85,384なので、税額表より税額を探してくる。
見当を付けるために、
①手取り金額を0.96937で割った185,687円の税額を税額表から探すと16,000円
手取180,000+税額16,000=196,000円(仮の総支給額)
仮の総支給額196,000円の税額を税額表で確認・・・19,500円
196,000-19,500≠180,000なので税額16,000は、誤り。
②19,500が税額だったら?と仮定すると、仮の総支給額は手取180,000+19,500で199,500円。
199,500円の税額を税額表で確認・・・20,900円
199,500-20,900≠180,000
なので、税額19,500円も誤り。
mike_g 様
続きその2です。
③税額20,900円ならば?と仮定すると、仮の総支給額は180,000+20,900で200,900円
200,900円の税額を税額表で確認・・・20,900円
200,900-20,900=180,000
手取金額と一致したので、手取り180,000円の場合、総支給額200,900円 税額は20,900円
とこのような計算をExcelでできれば・・・と考えています。
わかりにくい質問ですみません。
tatsu99様
お返事ありがとうございます。
まさに私が望んでいること(表もバッチリ合っています)も、エクセルの表示も理想のものです。
支給単位は100円単位で考えています。
よろしくお願い致します。
tatsu99 様
Shipping Tool の存在を初めて知りました(本当にPCオンチなのがお恥ずかしい・・・)
添付の図(あれからやっぱり支給日も欲しい!と欄を1つ追加してしまいました)のようにA列は人の名前、B列は支給日(この場合は1月)、C列に手取り金額、D列に税額、E列に総支給額・・・というように12ヶ月連続させます。
こんな説明で大丈夫でしょうか・・・?
tatsu99 様
仰るとおり、毎月同じ人が働くわけではないので、手取り額を意図的に空白にしているのでエラーメッセージは空白だと嬉しいです。