『VLOOKUP関数について』(nao) VLOOKUP関数についてなんですが、最初に手入力した表のコードがあるのですが 1 高橋肇 Windows基礎 OB 2002年4月 4 \8,000 2 高橋肇 Windows応用 OA 2002年7月 4 \14,000 3 佐藤みどりExcel基礎 EB 2002年8月 6 \12,000 4 佐藤みどりExcel VBA EV 2002年12月 8 \24,000 5 福島隆 Windows基礎 OB 2002年4月 4 \8,000 6 福島隆 Word基礎 WB 2002年5月 6 \12,000 7 福島隆 Excel基礎 EB 2002年8月 6 \12,000 8 和田みつるExcel VBA EV 2002年12 8 \24,000 9 小野正 Word応用 WA 2002年10 8 \20,000 10 小野正 Excel応用 EA 2002年11月 6 \20,000 11 鹿島紀子 PowerPoint基礎 PB 2002年6月 4 \15,000 12 鹿島紀子 Excel基礎 EB 2002年6月 6 \12,000 13 鹿島紀子 Access基礎 AB 2002年9月 7 \28,000 14 東俊之 Windows基礎 OB 2002年8月 4 \8,000 15 東俊之 Excel基礎 EB 2002年6月 6 \12,000 と、こういうふにならんでいたのですがVLOOKUP関数の練習のために、コードを一度OB からEBまで消して、VLOOKUP関数でセルDをアクティブセルにして、関数の挿入の設定画面で (検索)を選び次に(VLOOKUP関数)を選び関数の引数の画面で検索値でC3のWindows基礎を選び、そして範囲をコース表のセルI4からL12までを選択して絶対参照にして列番号に2を入れて OKを選択すると列DにOBと表示されて、ここまではうまくいくのですが、D3からほかのセルに フィルハンドルで行17までコピーすると OB OB EB EV OB WB EB AB WA EV EB EB AB OB EB というふうに最初とちがったコードの順番になってしまいます。よろしくおねがいします。 (nao) コース表 受講コース コード 受講回数 受講料 Access基礎 AB 7 \28,000 Excel VBA EV 8 \24,000 Excel応用  EA 6 \20,000 Excel基礎 EB 6 \12,000 PowerPoint EB 4 \15,000 Windos応用 OA 4 \14,000 Windos基礎 OB 4 \8,000 Word応用 WA 8 \20,000 Word基礎 WB 6 \12,000 ---- よく意味がわかりませんが、、、 そのVLOOKUP関数を提示してみてはいかがでしょう?   (キリキ)(〃⌒o⌒)b ---- VLOOKUP(検索値, 範囲, 列番号, 検索の型) 検索の型を指定しましょう VLOOKUP(検索値, 範囲, 列番号, FALSE) ---- (キリキ)さんありがとうございます  (nao) =VLOOKUP(C3,$I$4:$L$12,2)とこういう感じで検索値がC3 範囲が$I$4:$L$12 列番号が2 です。本には検索の型は空白でよいとかいてあるのです。 ---- HELP読んでる? 検索の型 VLOOKUP を使用して検索値と完全に一致する値だけを検索するか、その近似値を含めて検索するかを指定する論理値です。 TRUE を指定するか省略すると、検索値と完全に一致する値、またはその近似値が返されます。検索値が見つからない場合は、検索値未満の最大値が使用されます。 範囲の左端の列にあるデータは、昇順に並べ替えておく必要があります。そうしないと、正しく計算が行われません。データを昇順に配列するには、[データ] メニューの [並べ替え] をクリックし、[昇順] をクリックします。詳細については、「既定の並べ替え順序」を参照してください。 FALSE を指定すると、検索値と完全に一致する値だけが検索されます。この場合、範囲の左端の列にある値を並べ替える必要はありません。検索値と一致する値が範囲の左端に複数ある場合は、最初に検索された値が使用されます。検索値と完全に一致する値が見つからない場合は、#N/A エラー値が返されます。 ---- 最近出没している名無しさん、HNを書いてくださいね^^ (dack) ---- ありがとうございます。(dack)さん (nao) ---- こんにちは〜♪ 横から失礼します。。。 >=VLOOKUP(C3,$I$4:$L$12,2)とこういう感じで >本には検索の型は空白でよいとかいてあるのです 今回の場合、VLOOKUPが参照する範囲の左の列(受講コース) のデータが、昇順に並んでいると言う条件。 で、書かれているのではないでしょか。 コース表 ↓ I J K L [3] 受講コース コード 受講回数 受講料 [4] Access基礎 AB 7 \28,000 [5] Excel VBA EV 8 \24,000 [6] Excel応用 EA 6 \20,000 [7] Excel基礎 EB 6 \12,000 [8] PowerPoint基礎 PB 4 \15,000 [9] Windows応用 OA 4 \14,000 [10] Windows基礎 OB 4 \8,000 [11] Word応用 WA 8 \20,000 [12] Word基礎 WB 6 \12,000 上のコース表を見る限り昇順になっていますので 正しい結果が返るはずですが。 上の表のコース名は、私が直してありますが naoさんのは、受講コース名が、スペルが違う物がありました。 Windows応用    ↓ >Windos応用 ですから、正しい結果を返さないのではないでしょうか。 ★皆さんも書かれていますが  VLOOKUP(検索値, 範囲, 列番号, FALSE) 検索値が、特に文字列の場合は完全一致で 検索の型を FALSE にした方が良いと思います。 ご参考にどうぞ〜。。 。。。。Ms.Rin〜♪♪ ---- Ms.Rinさんありがとうございました^^  (nao) ---- Windows応用を直して、VLOOKUP(検索値、範囲、列番号、FALSE)でやり直したらコードの列は前よりただしく並べられるようになりました。まちがっていたところは、ExcelVBAでした。 Excel半角VBAだったのをExcelVBAにしたら前よりエラーがなくなったのですが、一箇所だけ 10番目のExsel応用のところだけ#NAになってしまいます。本当ならばEAになるはずなの ですが、すいませんがよろしくおねがいします。 (nao) ---- スペルが合っているとするならば、、、 スペースの有無などは大丈夫でしょうか? エクセル君は、スペースが入っているだけで「違うもの」と、判断してしまいます。   (キリキ)(〃⌒o⌒)b ---- 最初の手入力した表のExcel応用とコース表のExcel応用を入力し直したら、うまくいきました。これってExcelのきまぐれでしょうか? (キリキ)(〃⌒o⌒)b さんありがとうございます。 (nao) ---- 前のデータが残っていれば、単純に =A1=A2 の様な式で、A1とA2の内容が等しいかどうか確認してみると おそらく[FALSE]等しくないですよ。と言う結果が出ていた事と思います。 きまぐれではなく、キリキさんの仰っているような 「目では見えないけど違う」あるいは「非常に似ているから見落としているけど違う」 と言う事だったのだと思いますよ。 「=で見比べて同じと出るのに、うまくいかない」 のなら、本当に気まぐれかもしれません。由々しき事態ですよ。 (HANA) ---- HANAさんに、突っ込みを入れますwww   [A] [B] [C] [D] [1] a A TRUE FALSE ↑ ↑ =A1=B1 =EXACT(A1,B2)   (キリキ)(〃⌒o⌒)b ---- ん? [A] [B] [C] [D] [E] [F] [1] A AA 「A」→ A AA TRUE [2] 「A 」→ A #N/A FALSE [3] 「a」→ a AA TRUE E1=VLOOKUP(D1,$A$1:$B$1,2,0) F1=$A$1=D1 こういうことではないの? 単純に=で見比べてTRUEの時は、VLOOKUP関数で引っ張ってこられる。 (HANA) ---- いや、、、 深い意味は無いんです。。。   ただ、HANAさんに突っ込みいれられる貴重〜なスレかもb って思ったからw   いや、ごめんなさい^^; (キリキ)(〃⌒o⌒)b ---- う〜〜ん、おかしいですね。 私のは突っ込みどころ満載だと思うのですが・・・。(笑) なので早速違ったことを書いたかと思ってドキドキしましたよ。 (HANA)