アルバイトの人に給与を支払う予定です。
手取額を丸い数字(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も見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
ドルの円換算は切り捨て?それとも四捨五入?
財務・会計・経理
-
Excelで源泉所得税の額を甲欄・乙欄両方に対応したい
Visual Basic(VBA)
-
エクセル関数で源泉徴収額を計算したい
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
運送会社が商品を破損してしま...
-
自動車部品を個人輸入した際の...
-
公文書公開に伴うコピー料金等
-
経理です。車検の時の勘定科目...
-
429円に+税したら何円ですか?
-
建設業者が工事保険をもらった...
-
友人からお金を貰う。
-
重油に消費税はかかりますか?
-
累積課税合計とは何ですか?
-
確定申告について
-
固定資産税・都市計画税の計算...
-
レシートで消費税率の間違いを発見
-
建て得で10kw以上の太陽光をの...
-
エクセルで課税、非課税を自動...
-
インボイス制度と雑所得
-
消費税
-
市民税の督促手数料は非課税と...
-
経理仕訳を教えて下さい。
-
仕入と同額で販売する際の税金...
-
外税の場合は税込み、内税の場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
運送会社が商品を破損してしま...
-
経理です。車検の時の勘定科目...
-
消費税の区分について
-
印紙税額を求める関数
-
被課税とは
-
自動車部品を個人輸入した際の...
-
建設業の「安全協力費」の会計...
-
アマチュア団体の出演謝礼に税...
-
公文書公開に伴うコピー料金等
-
エクセルで課税、非課税を自動...
-
消費税計算で誤差が生じるのは...
-
建設業者が工事保険をもらった...
-
JPYで表記されている金額について
-
アメリカから革ジャンを通販で...
-
使用貸借契約の印紙税
-
給料 手取額からの源泉所得税の...
-
市役所と消費税
-
「消費税の納税義務者でなくな...
-
収入印紙は、必要ないのかな?
-
市民税の督促手数料は非課税と...
おすすめ情報
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 様
仰るとおり、毎月同じ人が働くわけではないので、手取り額を意図的に空白にしているのでエラーメッセージは空白だと嬉しいです。