- ベストアンサー
VLOOKUP関数のわかる方、ヘルプお願いします。
VLOOKUP関数のわかる方、ヘルプお願いします。社員番号を入れると社員名がでるようにしたいのです。3月は、「=VLOOKUP($H2,勤務業務用社員番号!A$2:勤務業務用社員番号!B493,2)」と、入力し、社員番号で社員名が出てきました。ところが4月は社員番号を入力すると、0002と入力すると0001の人の社員名が出てきます。つまり、ひとつずれるのです。どうしてもわからないのでよろしくお願いします。 回答、お待ちしています。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
VOOKUP関数は、 VLOOKUP(検索値,検索範囲,列番号,false) の形で、検索値が検索範囲の最も左の列の値と一致した場合検索範囲のその行(検索一致レコード)の左から数えて(列番号の値)の位置にあるセルの値を返す関数です。ここでいう列番号とはExcelの画面で上に並んでいる1,2,3,…という番号ではなく、検索範囲内での相対位置となります。 今回の場合、「勤務業務用社員番号」という名前のシートのA2~A493に社員番号、B2~B493に氏名が入った表があってそこから、社員番号(検索値)によって氏名を取り出そうとしているようですね。3月はうまくいったが、4月はなぜかずれてしまうということですが、3月のシートをコピーか何かで別に4月のシートを作ったところ、4月のシートでその現象が起こってしまうといことでしょうか? 数式の入ったセルを選択すると、数式バーに入力されている数式が表示されてますので、3月の数式と4月の数式をメモするなりして比べてみてください。本来同じでなきゃいけないのですが、何らかの理由で微妙に違うはずです。 症状からすると、コピー時に相対参照となって1行ずれている可能性が高いと思います。ずれては困る部分は範囲指定する場合に絶対参照にしてください。例えば、相対参照A1:B10→絶対参照$A$1:$B$10 のように$ を入れてあげてください。
その他の回答 (10)
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 ツール→オプション→計算方法タブの計算方法が手動になっていればこのような状態になりますので自動に変更してお試し下さい。
「出来ない、出来ない」と言われているのは、 ひょっとして、回答者諸氏の回答を「4月」シート上で修正していませんか? 多分何らかの理由で「4月」シート上のVLOOKUP関数の参照がずれてしまっているので、 いくら参照に「$」をつけても、間違った参照範囲を絶対参照にしているだけになっているのだと思います。 正しくVLOOKUPが効いている「3月」シートを修正してから、これを「4月」シートにコピペしてみてください。
- imogasi
- ベストアンサー率27% (4737/17069)
VLOOKUP関数の利用!の不都合は2・3しかない。 下記(1)が関係していないか? (1)検索する表のセル範囲を固定しておく。(縦方向に式を複写する場合。本件も$H2と2に$が付いてないのでその場合か? $で絶対番地にして置かないと、式を複写すると範囲がヅレル。 (2)第4引数のTRUE型とFALSE型の認識の欠如 この質問では第4引数は書いてもない。 (3)第1引数のデータ内容と、第2引数で示される表範囲の最左列のデータ内容について、食い違いがある。文字列と数値、半角全角とか、見えないスペ-スが付いているとか。本質問はこれではない。 >VLOOKUP関数のわかる方、・・ エクセルを使っている人はみんな知っているぐらい有名な関数です。 特別に書く必要なし。
- keirika
- ベストアンサー率42% (279/658)
勤務業務用社員番号シートの社員番号0002の後ろに空白が入っていないでしょうか。 例 00002□
- mshr1962
- ベストアンサー率39% (7417/18945)
#1の方の言われたように 3月のセル=VLOOKUP($H2,勤務業務用社員番号!$A$2:$B$493,2,FALSE) ですね。 4月のセル=VLOOKUP($H3,勤務業務用社員番号!$A$2:$B$493,2,FALSE) でしょうか? これで"0001"の方の社員名がでますか? 数式が 4月のセル=VLOOKUP($H2,勤務業務用社員番号!$A$2:$B$493,2,FALSE) で3月のセルと同じ"0001"のセルを参照してませんか?
「3月」とか「4月」とか言われているのが、 具体的にどのような構成になっているのかわかりません。 この辺りを明らかにしないと、適切な回答はは得られません。
お礼
3月分のファイルはちゃんと動きます。4月を作るとうまく動きません。 ありがとうございます。VLOOKUPはコピーしましたが、うまく動きません。
勤務業務用社員番号!A$2:勤務業務用社員番号!B493 検索範囲指定の部分が相対参照だからでは? 勤務業務用社員番号!$A$2:$B$493 (両方にシート名指定は不要なハズです) と行、列共に絶対参照にすべきです。
お礼
それでやっても社員番号を入力すると、社員名がずれてきます。0002を入力すると0001の人が出てきます。 ありがとうございます。
- wildwild
- ベストアンサー率16% (2/12)
質問からはファイルが想像しにくいですが、絶対参照の「$」の使い方ではないでしょうか? 「$H2」では数式のセルをフィルを使ってコピーしたとき、「2」の方は変化してしまいます。 同じのセルを参照するなら、「$H$2」です。 同じように「勤務業務用社員番号」という表を参照するなら、「$A$2」:「$B$493」かなと思いました。 「F4」キーを使うと、列の絶対参照、行の絶対参照など(「$」の付き方)が変更できます。
お礼
すいませんが、それで試してみましたが、うまくいきません。 ありがとうございました。
- izmlz
- ベストアンサー率55% (67/120)
=VLOOKUP($H2,勤務業務用社員番号!A$2:勤務業務用社員番号!B493,2,FALSE)」 ↑のように、最後に「,FALSE」をつけてみてください。
お礼
うまくいきません。有難うございます。
- mu2011
- ベストアンサー率38% (1910/4994)
原因は分かりませんが、次の点をご確認下さい。 >「=VLOOKUP($H2,勤務業務用社員番号!A$2:勤務業務用社員番号!B493,2) ⇒社員番号がゼロ有効という事は検索値は文字列となりますが如何でしょうか。 よって検索の型は「FALSE:完全一致」にしなければ結果が不定になりますので数式は、=VLOOKUP($H2,勤務業務用社員番号!A$2:B493,2,FALSE)として下さい。 又、数式の検索値セルが列固定から同数式を下方向にコピーする事が想定できますので、表範囲は絶対形式にして下さい。 =VLOOKUP($H2,勤務業務用社員番号!$A$2:$B$493,2,FALSE) 因みにVLOOKUPの検索値セルと表の検索値列の書式設定は同じ形式となっている事を確認して下さい。
お礼
falseを入れても出てきません。また、上の式をコピーして見たのですが、うまくいきません。 ありがとうございました。
お礼
ツールからオプションが選べなくなっています。 ありがとうございます。