• 締切済み

EXCELのVLOOKUP関数

VLOOKUPの検索値に、二つの列を参照するような検索値を入力することは可能でしょうか? 現在、ある表からVLOOKUPでデータを自動検索するような式を考えていますが、この表はA列とB列の2列そろって初めてKeyとなっています。 もし関数の組み合わせや、他にこの機能を実現できる方法をご存知でしたら教えてください。よろしくお願い致します。

みんなの回答

  • Admiral
  • ベストアンサー率19% (65/330)
回答No.2

色々やり方はありと思いますが、何となく思いついた方法で、 検索値が「あ」のときで、A列、C列を検索し、値はそれぞれB列、D列にあるとすると、 =IF(VLOOKUP(あ,A:A,1)=あ,VLOOKUP(あ,A:B,2),VLOOKUP(あ,C:D,2),"") 最初の VLOOKUP(あ,A:A,1)=あ は,(ISERROR(MATCH(あ,A:A,0)=TRUE) でも良いと思います。 質問の意味と違っていたらすみません。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 検索する表がSheet2にあるとします。 (方法1)作業列に連結データ 表のB列とC列の間に1列挿入します。 そして、新しく挿入したC列に、 =A1&"_"&B1 と入力して下の行へコピーし、A列とB列を連結します。 (間の"_"はAB列の境界が分かるようにした区切り文字です。) 検索値が別シートのA1とB1にある場合、 =VLOOKUP(A1&"_"&B1,Sheet2!C:D,2,FALSE) で、検索出来ます。 (方法2)配列数式 検索値が別シートのA1とB1にあるとして、 =VLOOKUP(B1,IF(Sheet2!A1:A10=A1,Sheet2!B1:C10),2,FALSE) と入力して、[Ctrl]+[Shift]+[Enter]で確定します。 (数式の両端に「{}」が付いて、配列数式になります。) なお、Sheet2の検索表の範囲は、適宜変更して下さい。 また、検索表が大きいと処理が重くなります。

関連するQ&A

  • VLOOKUP関数について

    VLOOKUP関数についての疑問なのですが、 ...........A...............B 1..品名コード|.品名..| 2..A123...........|..お茶.| 3..A456...........|...水....| 4..A789...........|..お酒.| というデータがあったとします。 VLOOKUP関数を使用して、 このデータから 品名コードを入力して品名を検索することは できるのですが、品名を入力して品名コードを検索できません。 データのA列とB列の位置を入れ替えれば検索が可能になりますが…。 VLOOKUP関数は検索するキーのデータが一番左側にないと機能しないのでしょうか? どなたかご教授お願いいたします。

  • 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のvlookup関数を使ってあるシートを作っています。 「basedata」というシートに3列表をつくり、1番左にキー、2番目と3番目に値をいれ、この表を別シートから検索にいっています。 検索元のシートには 文字列 文字列からMID関数で切り出した数値 検索1 検索2 の4列があります。 やりたいことは2列目の切り出した数値を元にして、basedataのキーを検索しにいき、検索1の列にbasedataの2列目の値を、検索2に3列目の値をいれたいと思っています。 =IF(ISERROR(VLOOKUP(B2,basedata!A2:E56324,2,0))=TRUE,"",VLOOKUP(B2,basedata!A2:E56324,2,0)) という式を検索1のセルに入力した場合、何も表示されず、B2に実際に入っている値を引用符なしで直うちすると値が表示されます。ステップインで分析すると、参照にした場合、参照値が引用符で囲われており、これが原因かと思うのですが、何か回避方法はないでしょうか。

  • エクセルのVLOOKUP関数に似た操作について

    VLOOKUP関数を使用すると、ある列のデータを検索してほかの列のデータを表示するということができると思いますが... この検索する列を2列にできませんか? 例えば、A列には上から 0,0,1,1 B列には上から 0,1,0,1 C列には上から A,B,C,D と入力されていたとします。そして、適当な隣り合ったセルに「0」,「1」 と入力した時に他のセルに、自動的に「B」と表示させたいです。 どなたか教えてください。よろしくお願いします。

  • 【エクセル】VLOOKUP以外の方法

    申し訳ありません。どなたかご教示ください。 次のような【参照データ】から、【集計表】を作成したいのです。 【参照データ】   A  B    1 名前 ID  2 田中 123  3 鈴木 456  4 田村 789 【集計表】 IDをキーにして、B列を表示をさせたい。 VLOOKUP関数は、左端列(A列)が昇順になっている必要があるため、このケースでは使用できません。 他の関数で実現できないかご教示ください。 INDEX関数もトライしてみたのですが、 A列(A2、A3・・・)がデータになってしまい、 「列見出し」のようなものがないため、 ネックになっていると考えています。 また、A列とB列を【手動】で入れ替えしたり、 別にシートを一枚作成し、 A列とB列を入れ替えしたりした上で、 VLOOKUPを使用することは避けたいです。   A  B  C   D 1 ID  氏名 住所  年間売上 2 123 田中 北海道 600 3 456 鈴木 青森  700 4 789 田村 秋田  800 <要するに> 「A2」で「123」と入力すれば、 「B2」に「田中」が表示される、ということが実現したいことです。

  • VLOOKUP関数について

    BとC列に抽出表があり検索範囲データがEとF、HとI列の2グループに分かれています。 VLOOKUP関数を使って検索範囲が2つのグループに分かれている場合の計算式を教えてください。 VLOOKUP関数以外でも出来る方法があれば教えてください。

  • ExcelのVLOOKUP関数で時刻を扱うと

    こんばんは。 提出用の勤務表を作ろうと思っています。 ほぼ同じフォーマットで、入力用(a.xls)と提出用(b.xls)のファイルが2つあります。 2つのファイルに入力するのも手間なので、VLOOKUP関数で時刻だけ呼びだそうとしましたが、0:00になります。 どうしてでしょうか。 A列に日付、B列に始業時間、C列に終業時間を入れています。 始業時間を呼び出すのは日付を検索値にしたので、関数式はVLOOKUP($A1,[b.xls]Sheet1!$A$1:$c$31,2,TRUE)で合っていると思います。 どちらも表示形式は"h:mm"です。

  • IFとVLOOKUP関数

    VLOOKUP関数を使って検索結果を出そうと思いましたが、 データ量が93000行X8列になりますので、 共通分けして複数のシート(A、B、C、D)に分けました。 あるセルに『A』と入れると『シートA』の表から検索を行う、 あるセルに『B』と入れると『シートB』の表から検索するといった感じにするには、 IFとVLOOKUPを使用するなら、どのような式を入れたらいいのでしょうか? また、他の関数を使う式があるのでしょうか? マクロやVBAも考えましたが、 あまり知識がありません。 データ量から考えると マクロやVBAで行った方がいいのでしょうか?

  • Excel検索関数で

    説明下手なのでわかりにくいかもしれませんがお願いします。 VBAを使わず、エクセルの関数のみを使って表のデータを抜き出し並びかえる作業をしてます。 表は複数あり、あらかじめ決められた順番に列を抜き出し、新たなシートに表を作ってます。 抜き出す時にVLOOKUPを使用しています。 抜き出す先の表にも検索値の列が存在してます。 一番最初にB列に基準となる列を抜き出し、B1を検索値、 抜き出したい列のある表を検索範囲(仮に○○!A1:C5とします) 抜き出す列は1列目(A列)なので1、 検索の型はFalseにします。 以上を式にすると、 =VLOOKUP($A1,○○!$A$1:$C$5,1,0)となってるのですが、 目的のA列が抜き出せません。 ちなみに、同じ式をオートフィルで引っ張るので絶対参照させてます。 また、抜き出す列より後の列が抜き出せないような状態です。 これでわかりますでしょうか? VLOOKUPじゃなくてもいいので何か方法はありませんでしょうか? 説明わかりにくくてすみません・・・

  • Excel 2007のVLOOKUP関数について

    Excel 2007のVLOOKUP関数について教えてください。 A列に(大根、人参、キャベツ)の3項目をプルダウンメニューで 選べるように設定します。 A列にある項目を選択した時に B列にそれぞれの数字が自動で表示されるように 設定したいと思います。 大根→1 人参→2 キャベツ→3 A列のプルダウンメニューは「データ入力規則」の元に値に 直接項目を入力します。 VLOOKUP関数を使用すると思いますが、 どのような方法で使用すればよいのかわかりません。 教えてください。