• ベストアンサー

midから取り出したデータをvlookupで利用したい

 セルB10に123456という値が入っているとして、 =MID(B10,3,1)で、3という値をB12に取り出すとします。 そしてD10:E16にVLOOKUPで使用するデータがあるとして、 =VLOOKUP(B12,D10:E16,2)とするとエラーになってしまいます。 B12の値を直接入力してもうまくいきますし、ほかの数式で求められた値を利用しても、エラーはでないのですが。 なんとかうまく解を求める方法はないでしょうか。 それともExcelの仕様で、MIDで求められたデータはVLOOKUPでは使えないのでしょうか。

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

  • ベストアンサー
  • kmb01
  • ベストアンサー率45% (63/138)
回答No.1

midで切り出されるのが文字列で、vlookup参照先が数値のためだと思われます。 セルB10の式を=VALUE(MID(B10,3,1))にするとうまくいきました。

kim_chi
質問者

お礼

 ありがとうございました。こちらの環境でも ばっちりうまくいきました。  midで切り出した数字も計算に利用できたので、 数値かと考えていたのですが、計算時に数値化さ れるだけで、元々は文字型なんですね。

その他の回答 (1)

  • kojitti
  • ベストアンサー率32% (449/1386)
回答No.2

データ型が一致していないためです。 文字列か数値かにあわせればOKです。

kim_chi
質問者

お礼

 たしかにちゃんとデータを見てみると、MIDで求められた値は、左詰めの表示になっておりました。  ありがとうございました。

関連するQ&A

  • VLOOKUPの検索値について

    エクセルでVLOOKUPの関数を使うときの「検索値」に関する質問です。 この「検索値」が数式結果だと反映されませんよね? そこで範囲指定をして、「値だけコピー貼付」をしたのですが、 やっぱり反映されません。 <sheet1>   A      B      C     D 1 123    りんご    10円    XXX 2 124    みかん    20円    YYY 3 125    めろん    30円    ZZZ 4 126    かき     40円    QQQ   ↑   この「123」や「124」が   別のシートからVLOOKUPで「DのセルがXXXなら123にする」   という数式の結果なんです。 この<sheet1>を利用して、別の<sheet2>に VLOOKUPで「“123”と入力したら“りんご”となる」 というようにしたいのですが、 この“123”“124”が数式結果のため、反映されません。 値だけ貼り付けても反映されません。 上書きで“123”“124”と入力すれば反映されますが 数が多いので困っています。 初心者なので、できるだけわかりやすく教えていただけたら 嬉しいです。

  • ExcelでVLOOKUPの引数にMID関数を使う?

    ・Sheet1のA1セルの数値をVLOOKUPの検索値にする ・Sheet1のA1セルの数値が6桁あって、左から2・3・4番目の数値を使う ・Sheet2にVLOOKUPの「範囲」になる表がある 以上の条件のとき =VLOOKUP(MID(A1,2,3),Sheet2!$表のセル範囲$,列,型) という数式を作ったのですが、「NAME#」エラーがでました。 正しい数式を教えていただければ助かります。 よろしくお願いします。

  • [EXCEL]VLOOKUP関数がうまくいかないので助けてください

    あ.xls   B  C  1 10   2 12 3 15 い.xls   B  D 1 10 100 2 15 150 3 18 180 あ.xlsファイルのC列に、 あ.xlsファイルのB1セルと、い.xlsファイルのB1を見比べて同じ値なら、 い.xlsファイルのD1の値をあ.xlsファイルC1に値を表示する数式を 入力しようと思います。 「=VLOOKUP(B1,[い.xls]Sheet1!$1:$3,4,false)」と あ.xlsファイルのC1セルに数式を入力しましたが、すべてエラー(#N/A)で 返ってしまいます。 正常に機能するよう、数式を教えてください。

  • VLOOKUPで他のシートを参照する場合

    数式に間違いがあったので、前回の質問をいったん締め切って、再度投稿いたします。 シートが(1)「値表示」と(2)「データ」の2種類があります。 (2)にはB1:D4、B5:D8、B9:D12というように、セル12個分にそれぞれ独立したデータ表があり、このデータが全部で10個あります。 そして、このデータから任意の値を(1)「値表示」シートに表示したいので、(1)のセルA1に「=VLOOKUP(B1,データ!,B1:D4,2,FALSE)という式を入れます。 これで、(1)のA1(2)のシートのデータ表から任意の値が表示されるのですが、このA1に入力した式をコピーして、A10までそれぞれの表に対応したVLOOKUPの数式を入れたいのですが、普通にコピーするとA2以降に入力される式はデータの参照範囲がA1の範囲から1セル分だけずれたB2:D5となっています。A2が参照する範囲は本来はB5:D8にしたいので、一つずつデータの参照範囲を修正しないとならないのですが、このような場合は、やはり一つずつ修正するしか方法がないのでしょうか。 もっと、素早く参照先を変更できる方法がありましたら教えてください。

  • VLOOKUPで求めた数値をさらにVLOOKUPで

    エクセル2010を使用しています。 VLOOKUPで求めた数値をさらにVLOOKUPの検索値にしたいです。 Sheet1のB2のセルにIDを入力したら Sheet2のA1からAL500の中のデータから 自動でSheet1のC2からF2まで値が入るように VLOOKUPを使用して表を作りました。 Sheet1のF2には、その会員の紹介をしてくれた別の方のIDが 自動で反映されるんですが さらにF2に反映されたIDをもとに G2にSheet2の中からデータを拾い出すことは不可能なのでしょうか? 何度やってもエラーになってしまいます。 表の上ではF2には、紹介者のIDが反映されているのですが 実際には数式がはいっているので 検索値としては使用出来ないのでしょうか? もし可能な方法があれば教えてもらえれば助かります。 お願いします。

  • VLOOKUPの結果にさらVLOOKUPを使う方法

    こんばんは。エクセル2003での質問です。 画像の状態で、入力行に「123」と入力した場合、隣りのセルには元データから「あいう」が導かれるようになっています。 さらに、元データの「あいう」ではなく導かれた方の「あいう」を使って、隣りのセルに元データからの「ABC」を導きたいのですが、N/Aとなってしまいます。 「あいう」ではなく実際には数式を探してしまっていることが原因なのでしょうか? 導かれた方の値でVLOOKUPを使う方法につきましてご教授ください。 お手数ですが、よろしくお願いいたします。

  • VLOOKUPで他のシートを参照する場合

    シートが(1)「値表示」と(2)「データ」の2種類があります。 (2)にはB1:D4、B5:D8、B9:D12というように、セル12個分にそれぞれ独立したデータ表があり、このデータが全部で10個あります。 そして、このデータから任意の値を(1)「値表示」シートに表示したいので、(1)のセルA1に「=VLOOKUP(A2,データ!,B1:D4,2,FALSE)という式を入れます。 これで、(1)のA1(2)のシートのデータ表から任意の値が表示されるのですが、このA1に入力した式をコピーして、A10までそれぞれの表に対応したVLOOKUPの数式を入れたいのですが、普通にコピーするとA2以降に入力される式はデータの参照範囲がA1の範囲から1セル分だけずれたB2:D5となっています。A2が参照する範囲は本来はB5:D8にしたいので、一つずつデータの参照範囲を修正しないとならないのですが、このような場合は、やはり一つずつ修正するしか方法がないのでしょうか。 もっと、素早く参照先を変更できる方法がありましたら教えてください。

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • EXCELのVLOOKUPで・・・

    はじめまして。 EXCEL初心者の私に教えていただきたいことがあります。 今EXCELで下記のような表を作成しております。         A        B     C     D    1  不良症状   不良数    2   キズ      1    3   異物      1    4   異物      1 例としてC2セルにキズと入力すればD2セルにB2セルの値が 出るようにするにはD2セルに=VLOOKUP(C2,A2:B4,2)で 良いと思うのですが、 異物と入力した時に不良数を合計してD2セルに表示させるには どうすればよろしいでしょうか? また、もっと簡単な方法があれば教えていただきたく思います。 以上よろしくお願いします。

  • エクセルのVLOOKUP関数の検索値が数式の場合について

    エクセルのVLOOKUP関数に悩んでいます。 どなたかご指導お願いいたします。 *--------------------------* A~F列 すべて書式が時刻です。 A、B列には数式で計算された時刻が入力されており、 C列はA列+B列という計算式がはいっています。 F列に=VLOOKUP(C列、D:E列、2、FALSE)というように C列を検索値とし、D列を参照し、E列にある時刻をF列に 設定したいのですが、結果が#N/Aになります。 例えばA,B列が数式ではなく入力した値であれば 検索値であるC列がA列+B列 でも結果はOKでした。 検索値は数式セル同士を足し算した数式は設定不可能なのでしょうか?

専門家に質問してみよう