• ベストアンサー

VLOOKUP 指定した範囲を取得したい

セル内に以下の関数を記載しています。 D19に、月額費を入力した(例えば350,000円)際、 厚生年金が29,706円が表示されてしまします。 【入力シートの関数】 =VLOOKUP(D19,社会保険料税額表201504!$C$11:$Q$57,13,1) 月額表では、31,453円です。 これを正しく表示するにはどうすればいいでしょうか。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>これを正しく表示するにはどうすればいいでしょうか。 シート名が社会保険料税額表201504の数表が貼付画像では読めません。 「月額費」と言うのはどのような値なのかと厚生年金とは何を言うのかも一般的な解釈でピントが合いません。 350,000円とは給与の月額のように感じます。 29,706円とは給与に対する厚生年金保険料と推測します。 所得税や厚生年金保険料は給与月額に応じて段階的に控除されるものと思います。 その額を算出するにはVLOOKUP関数でマスターの数表から抽出できますが目的に合わない数表になっていると1ランク下がった値を返すことになります。 あなたが使っている数表がVLOOKUP関数で抽出できる配列になっているか否かを点検してください。 等級が21級で標準報酬月額が350,000円以上、370,000円未満のとき保険料が31,453円であるのに350,000円未満の29,706円が抽出されると言うことでしょうか? VLOOKUP関数の検索方法が1のときは検索値以下の値で最大値にヒットしますので数表の状況に応じて検索値を加工するか、検索値をそのままにして検索範囲の数表を修正しなければなりません。 つまり、検索範囲の値は「以上」なのか「未満」なのかを明確にすることが肝要です。 >これを正しく表示するにはどうすればいいでしょうか。 厚生年金保険料額表の「未満」の列を検索範囲に指定していると思われますので、「以上」の列を検索範囲に変更してみると良いでしょう。

s0217071
質問者

お礼

解決しました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

・質問の表題が、聞きたい内容を正しく表してない >指定した範囲を取得したい ではなく「正しい値を検索しない、どのように式を変えればよいか」だろう。 まれに検索表を作り変えないといけない場合もあるよ。 ・OKWAVEで質問するカテゴリが適当でない。ここはVBAやVBのカテです できるだけ正しいカテに質問を出した方が、よい回答が集まるだろう。 ・画像の文字が小さいうえに、ぼやけていて、よく見えず、例としての役を果たせてない ーー 折角なので、経験から思いついた点を記してみる。 ・VLOOKUP関数は大きく分けて、2種類の使い方があり、両者は別物ともいえる。第4引数で区別される 本質問は第4引数はTRUE型の質問だろう。文字列を探すFALSE型の質問が多い。 本来はVLOOKUP関数はTRUEがたからはじまったのでは(LOTUS123由来?)? (TRUE型のVLOOKUP関数の使い方) TRUE型は数値で検索する場合が多く、第2引数の表の最左列の値は昇順に並べて置かないとならない 。公的WEBの表はその点心配は」「いらないと思うが、 数値で区分された表’段階別金額表など)を検索する場合は 最初(足切りがある場合があって、該当最低額以下)と最後(頭打ちがある場合があって、)それ以上の人へ対応に注意しないといけない。 場合によってはエントリ(表の行に1つの数値の場合を)を作らないといけない場合がある。(本質問もこの辺で躓いてないかな。) 下記に例示してみます(架空の抽象的な例です) ーー 公的表が以下、未満、以上のどれかで表が作られている場合、または自社のルールがそのような場合 十分に神経を使って表を作らないといけない(検索ルール・仕組みはエクセル関数側で決まっているので、表で調節するほかない。この1円問題で苦労する) 参考例示 20000 0 0 0 <---注意 270000 1500 30000 1500 282000 1000 280000 1000 295000 2000 290000 2000 350000 3000 300000 3000 1000000 3000 10000000 3000 <---注意 10000000は社長といえども絶対超えない数字(所得行)を作っておく必要がある場合が多い。 この注意のエントリに注意してください、と言いたい。 エクセルシート例 A列検索数字 B列関数で検索結果 E:F列は基準テーブル B1の式は =VLOOKUP(A1,$E1:$F$6,2,TRUE) 下方向に式を複写

s0217071
質問者

お礼

解決しました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • mogurun
  • ベストアンサー率37% (3/8)
回答No.4

例示されている350,000円という金額ですが、 年金機構が決定して送られてくる「標準月額」には350,000という額はないと思いますので、 御社では社会保険料は「標準月額」ではなくて月ごとの「報酬月額」によって決定していると仮定してお答えします。 それであれば、検索範囲を標準月額ではなくて報酬月額にする必要があります。 $C$11→$E$11としそれに伴って、列番号を11→9としてはどうでしょうか。 =VLOOKUP(D19,社会保険料税額表201504!$C$11:$Q$57,13,1)   ↓ =VLOOKUP(D19,社会保険料税額表201504!$E$11:$Q$57,9,1) 他の方の「検索方法を0またはFALSE」にするというのは検索値と完全一致する金額を探すので 毎月の報酬月額で計算するということは、 354,642円などという端数も出てくると思うので完全一致がなく、この場合エラーになります。 上記のように端数の出る毎月の報酬月額で計算するなら 検索方法は1またはTRUEが適当です。 なお、一円未満に対しては御社の方針によりますが、 給料から天引きの場合、普通は四捨五入なのでroundを使う必要があるように思われます。 =ROUND((VLOOKUP(D19,社会保険料税額表201504!$E$11:$Q$57,9,1)),0) いかがでしょうか?

s0217071
質問者

お礼

解決しました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>厚生年金が29,706円が表示されてしまします。  最後の所を 1 としているからだと思われます。 =VLOOKUP(D19,社会保険料税額表201504!$C$11:$Q$57,13,0) 或いは =VLOOKUP(D19,社会保険料税額表201504!$C$11:$Q$57,13,FALSE) としてみてください。

s0217071
質問者

お礼

解決しました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • f272
  • ベストアンサー率46% (8052/17216)
回答No.1

=VLOOKUP(D19,社会保険料税額表201504!$E$11:$Q$57,11,1) とすればよいのでは?

s0217071
質問者

お礼

解決しました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 関数のみを取得して、メインシートの値を取得する

    シートが複数あります。 【メインシート】 D235に金額 D239健康保険料 があります。 このメインシートにあるセルから 設定シートのセルの関数のみを呼び出して メインシートにあるセルに埋め込み、 金額を求めたいです。 どのようにすれば、求めることができますでしょうか。 valueやtext関数でやってもできません。 【設定シート】 =IF(D235="","",IF(K239="対象",VLOOKUP(D235,社会保険料税額表201504!$E$11:$Q$57,7,1), VLOOKUP(D235,社会保険料税額表201504!$E$11:$Q$57,5,1)))

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • VLOOKUPが効かない(>_<)

    昨日出来たVLOOKUPの作業が今日は出来なくなりました。 そんな事ってありえますか? 使用するデータは異なりますが、VLOOKUP関数の条件部分は全く変えてません。 一致しない場合のエラー表示もなく、セルには関数式が表示されるだけです。 仕事とで息詰まって残業しています。どなたかお助けを~”(ノ><)ノ (課題内容) シート1には電話番号 シート2には電話番号と月額使用料 VLOOKUPで1と2を付け合わせ電話番号が合致する場合はシート1に月額使用料を記載したいです。

  • vlookupにつきまして

    こんにちは、教えてください。 以下のような表をつくっています。     A     B      C      D       E 1 商品コード 商品名  100枚   1000枚 10000枚 2  1      赤      10       9       8 3  2      青      11       10        7 4  3      黄       12       11        6 赤という商品を100枚発注すると単価は10円ですが、1000枚発注すると9円になるという表です。 現状はvlookup関数を使用して「1」という商品コードを入力すると「赤」と表示 させ、その後に「1」と「1000枚」という情報を入力 すると 「9円」という単価まで自動表示させてしまう表を作成 したいと思っています。 もし縦横読む関数がありましたら教えてください。 =IF(A29="","",VLOOKUP(A29,sheet1!$D$5:$E$154,2,FALSE)) 現状はこの関数を使用しています。この関数だと単価は手入力と なってしまい作業効率が悪く、金額齟齬のおそれがありますので是非 宜しくお願いします。

  • VLOOKUPの範囲指定

    同じことを以前にお聞きしたのですが質問の仕方が分かりにくく解答を下さった 皆様にご迷惑をおかけしました。 今回は画像を添付いたしました。以下の疑問にアドバイスをいただければ幸いです。 なお、マクロを作る関係上、セルの指定をR1C1参照形式にしております。 管理.cells(7,5)に番号を入力すると該当クラスのその番号の生徒氏名が表示されるように、 管理.cells(7,6)にVLOOKUP関数を入れたいのですが、クラスごと別のシートのため、範囲指定が うまくいきません。 以前質問した時に何人かの方に教えていただいたINDIRECT関数を使ってもうまくいきませんでした。 シート名(クラス名)を変数として範囲を指定できないでしょうか。 教えていただければ大変助かります。 よろしくお願いいたします。

  • VLOOKUPに関して教えてください

    EXCEL97です VLOOKUP関数で =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)という式を入力して次の列にコピーすると =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)とコピーしてしまいますよね 次の行には=VLOOKUP($B$1,SHEET!$A$2:$Q$30,3,0)にしたい時があるのでいつも 手入力で2→3に変更するかVLOOKUP式を入れなおしているのですが 手入力せずに2→3をコピーできる方法ってありますか? VLOOKUP式を使うことが多く毎回めんどくさくて・・・ どなたか教えてくださいませんか?

  • エクセル VLOOKUP関数?を使ってこのような事が出来るか知りたいです。

    Sheet1の2行目A~D列に 1 2 5 8と入っています。 Sheet2の   〃   に 3 2 5 9と入っています。 Sheet3の   〃   に 9 3 5 1と入っています。 Sheet4のA1にSheet1 と入力した際、B1~E1のセルに、Seet1に入っていた 1 2 5 8と表示させたいのですが、出来ますでしょうか? 私が思うにVLOOKUP関数?と思いますが、どんな式にしていいのかわかりません。 それか、他の関数の場合はどうすればいいのか?付け足さなくてはいけな出来ないものがあればそれも知りたいと思います。 宜しくお願いします。

  • VLookUp関数?

    エクセルでの質問です。 1 りんご 2 みかん 3 メロン というような表があったとします。どこかのセルに「りんご」と 入力すると隣のセルに「1」というように表示させる方法は何か ありますでしょうか…? VLookUp関数なのかな?と思いつつ見てみたのですが、 使い方がわからず、この関数で合っているかどうかもわかりませんでしたので…。 宜しくお願いします!

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • EXCELのINDIRECT関数について

    こんにちは。 現在仕事で他の方が昔作ったEXCELを見ているのですが、シートが2枚(sheet1, sheet2)あって次のような関数が使われてます。 -- <sheet1> 【セルD15】SGP (←入力) 【セルD16】150 (←入力) 【セルD17】=VLOOKUP(D16,INDIRECT(D15),2) (←関数) (セルD17には、165.2という計算結果が表示されています) <sheet2> SGP 呼径 外径 A mm 6 10.5 8 13.5 10 17.2 15 21.7 20 27.2 25 34.0 32 42.7 40 48.6 50 60.5 65 76.3 80 89.1 90 101.6 100 114.3 125 139.8 150 165.2 175 190.7 200 216.3 (sheet2には、同様の表が上下左右に並んでいます) -- ここで、セルD17に入力されている関数について、VLOOKUPはたまに使うんですが、INDIRECTがサッパリ謎で困っております。 何故こんな簡単な式で、別シートの表の一部を参照できるのか?(しかもシート名の指定もないし・・)という点、どなたか教えていただけないでしょうか? よろしくお願いします!

専門家に質問してみよう