アプリ版:「スタンプのみでお礼する」機能のリリースについて

給与・賞与をexcel(マクロ機能を使わずに)で印刷する。
賞与 源泉徴収税額
ROUND ( IF で 扶養親族等の数 0人 VLOOKUP で 源泉徴収税額 、IF で 扶養親族等の数 1人 VLOOKUP で 源泉徴収税額、IF で 扶養親族等の数 1人 VLOOKUP で 源泉徴収税額 、・・・・・・・),0)
扶養親族等 5人目で ”入力した数式は正しくありません。” が エラーが発生します。
エラーの原因は()が多すぎるエラーですか?
ほかの方法はありますか? 宜しくお願い致します。

賞与 源泉徴収税額

0 人1 人2 人3 人4 人5 人6 人7 人
0%00000000
2%68,00094,000133,000171,000210,000243,000275,000308,000
4%79,000243,000269,000295,000300,000300,000333,000372,000
6%252,000282,000312,000345,000378,000406,000431,000456,000
8%300,000338,000369,000398,000424,000450,000476,000502,000
10%334,000365,000393,000417,000444,000472,000499,000527,000
12%363,000394,000420,000445,000470,000496,000525,000553,000
14%395,000422,000450,000477,000504,000531,000559,000588,000
16%426,000455,000484,000513,000543,000574,000604,000632,000
18%550,000550,000550,000557,000592,000622,000652,000683,000
20%668,000689,000710,000730,000751,000771,000792,000812,000
22%714,000738,000762,000786,000810,000834,000859,000884,000
24%750,000775,000801,000826,000852,000879,000905,000932,000
26%791,000817,000844,000872,000901,000929,000957,000985,000
28%847,000876,000905,000934,000963,000992,0001,021,0001,050,000
30%917,000949,000980,0001,012,0001,043,0001,074,0001,106,0001,137,000
32%1,280,0001,304,0001,328,0001,352,0001,377,0001,401,0001,425,0001,449,000
34%1,482,0001,510,0001,538,0001,566,0001,594,0001,622,0001,651,0001,679,000
36%1,761,0001,794,0001,828,0001,861,0001,894,0001,928,0001,961,0001,994,000

前月の社会保険料等控除後の給与等の金額

賞与 源泉徴収税額
http://www.nta.go.jp/shiraberu/ippanjoho/pamph/g …

A 回答 (3件)

質問に書かれたテーブルがSheet1のA1:I20にあるとします。


ただし1行目の「人」は消してしまって0,1,2,3…6,7にしてください。

別シートのA1に扶養人数(0~7)を入力し、A2に賞与金額を数値で入力します(例えば 251,000、「円」などはつけないこと)

A3に以下の式を貼り付けます
=INDEX(Sheet1!$A:$A,MATCH(A2,INDIRECT("Sheet1!C"&MATCH(A1,Sheet1!A$1:I$1,0),FALSE),1))

すると人数、金額に応じた賞与に対する源泉徴収税額の算出率を求めることができます。あとはこの算出率を賞与金額に乗じてください。すると源泉徴収額が出るはずです。
    • good
    • 1
この回答へのお礼

ありがとうございます。

お礼日時:2007/07/27 16:50

人数ごとにIF関数でネストするのではなく


VLOOKUP関数の 列番号を 【扶養人数に対応した 列番号を求める式】をあてはめる。

例えば、下記の場合の範囲を  A2:F3 としたら 列番号は 【扶養人数+2】
  A  B C D E F
1    0 1 2 3 4(人)
2 2% 2 3 4 5 6
3 4% 4 5 6 7 8

0人だったら 範囲の2列目、1人だったら 範囲の3列目・・・・7人だったら9列目
を指定すれば、IFを多用せずに、且つ短い式になります。
    • good
    • 0

複雑なものは、それに対応した、適当な関数が無いか、探すべきです。

周りに聞く人もないと、つい今までの自分の経験内の関数だけで(特にIFを多用して)やろうとすることになる。
IF関数が3つ以上出るようでは、他に適当な関数があると考えてください。ない場合もあるが。
それを防ぐのは、エクセルの関数の本を日ごろ目を通すか、日経などのパソコン雑誌(ビジネスマンむけの関数解説が毎月ある)を読むことです。本を読んで1日考えてわからなければ、他にこういう質問コーナーを利用するとか。
ーー
本件は「表を引く」問題です。
ーー
エクセルセルが座標的構造になっています。
縦方向何行目(X)、横方向何列目(Y)が決まったら表の1セルが
決まります。
ではそんな関数は無いか?有名な関数があります。INDEX関数です。他にOFFSET関数でも似た関数です。
=INDEX(表全体範囲、X,Y)
X,Yに数字を入れてどのセルのデータを引いてくるか、実験し納得してください。
ーー
では残る課題は、X,Yはどうして求めるか?
これも定石的に関数があって、Match関数です。
扶養親族数がB2:I2にあるならy=MATCH(B2:I2,人数のあるセル番地,0)
です。
扶養親族数は3.3人など無いので、B2:I2で必ず該当セルがありますので問題はない。
ーー
同じくxもMATCH関数でよいが、表の区分の中間値3%なんて
ある場合がある。源泉徴収税額の場合、私には昔のことで、忘れたが、中間がある場合に、Match関数は第3引数で-1,0,1
の3種の指定ができて、上記の0は一致、-1は以上の最小値、1は以下の最大値の行番号(上から何番目)を取ってくれる。
源泉徴収税額の場合どちらが適当か忘れたが、データで2つ,3つでテストしてください。
そして、1の場合は表は昇順、-1の場合は降順に並べておく必要があります。
本質問は昇順構成になっているので、第3引数が1にふさわしい表です。
ーー
後は
=INDEX($A2:$I$30,MATCH(z%数値,&A$2:$A$30,1),MATCH(人数数値,$B$2:$I$2,0))
を入れて2,3のデータをいれ結果がおかしきないかチェックしてください。
(A)最後に端の方のデータでおかしくないか
(B)誤ってにしても、0やマイナスなど考えられるか、文字列はどうか、などチェックしておくこと。
本当は全ケースチェックしたいところだが、できにくいので、要点と
極端値のチェックは実行しておくこと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています