- ベストアンサー
エクセル 複数条件でのLOOKUP
エクセルで、特定のキーで別表を参照してそこから値を表示するにはVLOOKUPを使用すると思いますが、複数条件でLOOKUPする事は可能でしょうか。 例えば、 シート1のA列とD列 シート2のB列とF列 2つの条件に合う(シート1A列=シート2B列 and シート1D列=シート2F列)レコードをシート2のG列からシート1のE列に表示したいと言う場合です。 シート1 A B C D E 1 01 ** ** 01 2 01 ** ** 02 うう 3 05 ** ** 01 ああ ↑ シート2 A B C D E F G 1 ** 08 ** ** ** 01 いい 2 ** 01 ** ** ** 02 うう 3 ** 05 ** ** ** 01 ああ 判りにくい説明で申し訳ありませんが、よろしくお願いいたします。
- ogaki_3ok
- お礼率45% (98/215)
- オフィス系ソフト
- 回答数4
- ありがとう数2
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#3です。 書いているうちに、#2さんが提案されていましたね。 ただ、見つからなかったときにエラーが出ますので、 =IF(COUNTIF(Sheet2!$G$1:$G$1000,$A1&$D1)>0,VLOOKUP($A1&$D,Sheet2!$G$1:$H$1000,2,FALSE),"") のほうが良いでしょう。 ただ、VLOOKUPは最初に見つかった時点で検索を終了しますので、 同じものが複数行あったときはどうするかですね。 これはキメの問題ですが...
その他の回答 (3)
> シート1A列=シート2B列 and シート1D列=シート2F列 ということは、言い換えれば、 「シート1A列とD列の値がそれぞれ、シート2B列とF列で同じものを探す」 と考えてよいですよね。 もし、シート2にワーク列を設けて良いなら、 シート2のF列とG列の間に列を挿入して、 =$B1&$F1 として、下にコピーしておき、 シート1のE列に =VLOOKUP($A1&$D,Sheet2!$G$1:$H$1000,2,FALSE) というのはダメですか? 要は、シート2に検索のキーになる列をあらかじめ作っておくのです。 キー列の表示が煩わしければ、列幅をゼロにすれば良いでしょう。
- mshr1962
- ベストアンサー率39% (7418/18948)
一例ですが... E1=INDEX(Sheet2!G$1:G$3,SUMPRODUCT(MIN(100^((Sheet2!B$1:B$3<>A1)+(Sheet2!F$1:F$3<>D1))*ROW(Sheet2!G$1:G$3))),1) ※MINの後の数値(100)はSheet2のデータの最終行より大きい数値にしてください。 本当は、Sheet2で =B1&G1 のようにして 0801 いい のような表にして E1=VLOOKUP(A1&D1,Sheet2!G$1:H$3,2,FALSE) の方が簡単ですけどね。
お礼
ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =IF(SUMPRODUCT((Sheet2!$B$1:$B$100=A1)*(Sheet2!$F$1:$F$100=D1)),INDEX(Sheet2!G:G,SUMPRODUCT((Sheet2!$B$1:$B$100=A1)*(Sheet2!$F$1:$F$100=D1)*(ROW(Sheet2!$A$1:$A$100)))),"")
関連するQ&A
- EXCELでLOOKUPがうまくいきません。
EXCEL2000です。解説書を見ながら、検索関数のVLOOKUPと LOOKUP関数を比較していたのですが、VLOOKUPだとうまくいくのですが、LOOKUPだと望むべき答えが出ません。D列にC列の値をA1:B4の表から参照するという簡単なものです。 この式で、単純に答え(D欄)が1、2、3、4となるべきだと思うのですが・・以下の具合です。 A B C D 1○ 1 ○ =LOOKUP(C1,$A$1:$A$4,$B$1:$B$4)答4 2× 2 × =LOOKUP(C2,$A$1:$A$4,$B$1:$B$4)答2 3△ 3 △ =LOOKUP(C3,$A$1:$A$4,$B$1:$B$4)答3 4□ 4 □ =LOOKUP(C4,$A$1:$A$4,$B$1:$B$4)答2 どこがおかしいのでしょうか?よろしくご指導ください。
- ベストアンサー
- オフィス系ソフト
- エクセルのLOOKUP関数について教えてください。
エクセルのLOOKUP関数について教えてください。 日にちごとに、AさんからEさんの順位を表示しています。 その表を元に、日にちごとに、1位から5位には誰がなったのかを 表示したいと考えています。 LOOKUP関数を用いて行ったところ、正しい答えとそうでない答えが出てしまいました。 間違った答えがでた箇所(ピンク表示)には、下記のような計算式が入っています。 E15=LOOKUP(E13,$C$4:$G$4,$C$2:$G$2) E16=LOOKUP(E13,$C$5:$G$5,$C$2:$G$2) D17=LOOKUP(D13,$C$6:$G$6,$C$2:$G$2) F18=LOOKUP(F13,$C$7:$G$7,$C$2:$G$2) D19=LOOKUP(D13,$C$8:$G$8,$C$2:$G$2) F19=LOOKUP(F13,$C$8:$G$8,$C$2:$G$2) 調べたところ、LOOKUP関数は昇順になっていないとできないとあったので、 その理由でうまく表示されないのか?とまでは推測がついたのですが、 では、どうしたらいいか?というところで作業がとまっております。 LOOKUP関数以外の関数でも構いませんので、どのようにしたら表が完成できるか どうかお知恵を拝借願いますm(_ _)m
- ベストアンサー
- オフィス系ソフト
- エクセルで条件に合わせて複数データを抽出したい
シート1に基本データ(基データ)があり、シート2のセル内に条件を入れて、該当のデータをシート1から引っ張りたい。 具体的には、シート1に基本データ ナンバ- 1 1 2 2 2 3 4 4 4 該当データ A B C D E F G H I シート2に 条件内容 1を入れてA B (複数データ) 2を入れてC D E 3を入れてF -----と、こんな具合になりたいのですが? VLOOKUP は複数の抽出なので駄目でした。
- ベストアンサー
- オフィス系ソフト
- EXCEL 複数条件(VLOOKUP?)について
EXCEL 複数条件(VLOOKUP?)について シート1 A列 B列 C列 D列 名前 日付 色 サイズ(数値) シート2 A列 B列 C列 D列 名前 日付 色 サイズ(数値) シート1とシート2のD列を比較させて違う場合をシート1の別の列に表示させたいのですが、 現在はA,B,Cを連結し、VLOOKUPにて処理しています。 今後件数が5000件を超える予定となっており、このままではPCが止まってしまう恐れがあるので 別の方法を模索しているのですが、何か良い方法はないでしょうか?
- ベストアンサー
- オフィス系ソフト
- ExcelでLOOKUP関数がうまくいきません
EXCELでシート間でLOOKUP関数を使って「Sheet1」に関数を入れ、 コード(C5のセル)にコードを入れたら、「Sheet2」からデータを 持ってくるというようにしたいのですが、うまくいきません。 コードに「300」といれても「003」と入れても同じものをひっぱてきます。 【A列に入れた式です】 (コード) (A列) =IF(C5="","",LOOKUP(C5,Sheet2!$B$5:$B$20,Sheet2!$C$5:$C$20)) 【Sheet1】 コード A B C D 001 △△市 △△区 △△丁目 520 ◇◇市 ◇◇区 ◇◇丁目 ◇◇ 300 □□市 □□区 □□丁目 003 □□市 □□区 □□丁目 【Sheet2】 コード A B C D 300 ○○市 001 △△市 △△区 △△丁目 003 □□市 □□区 □□丁目 520 ◇◇市 ◇◇区 ◇◇丁目 ◇◇ あまりうまく説明できませんが、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル 複数条件での検索を関数を使って解決したいです。
エクセル関数を使って複数の条件を満たしたときの 特定のセルの文字列を返す方法を考えています。 例を挙げると A B C D E F 1 金額 日付 名称 金額 日付 名称 2 100 1月5日 a 100 2月1日 =??? 3 200 1月5日 b 4 300 1月6日 c 5 400 2月1日 d 6 100 2月1日 XYZ 7 100 2月3日 e 8 200 2月3日 f 上のような表のときに 金額=「100」 かつ 日付=「2月1日」 という2つの条件を 満たしたときのC列の文字列「XYZ」を返すということをやりたいのです。 金額だけですとVLOOKUP関数を使って =VLOOKUP(D2,A2:C8,3,false) とやって「a」という文字列はかえってくるのですが どうやっても「XYZ」という文字列が返せません。 (日付の条件を入れていないので当たり前ですが...) なにかいい方法がありましたらお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセルのVLOOKUP関数で…(複数条件?の抽出)
●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル 複数条件で検索する数式を教えてください。
社員の作業時間入力シートが2つあり、それぞれに入力しているため、入力ミスによる誤差が生じます。それをチェックしています。 検索条件が複数になる場合の計算式を教えてください。 [sheet1] A B C D E 1 社員CD 日付 作業時間1 作業時間2 誤差 2 1000 2008/1/1 3.5 ここに数式 =C2-D2 3 1000 2008/1/2 2.5 数式 =C3-D3 4 1001 2008/1/1 5.0 数式 =C4-D4 [sheet2] A B C 1 社員CD 日付 作業時間2 2 1000 2008/1/1 3.0 3 1000 2008/1/3 1.5 4 1001 2008/1/1 5.5 sheet1のD列にsheet2のC列を表示させたいのですが、 条件はA列とB列が一致するものになります。 A・B列が文字列ではないため、1列挿入して=A2&B2列を作成することができませんでした。 D列に数式をいれる事で一発で表示させる方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセル関数2
シート(1) A B C D 作業列 コード 顧客名 金額 3 300001 A 10,000 3 300002 B 15,000 3 300003 C 20,000 3 300004 D 25,000 3 300005 E 30,000 4 400001 F 35,000 4 400002 G 40,000 4 400003 H 45,000 4 400004 I 50,000 4 400005 J 55,000 シート(2) A B C D E F 「1」 「2」 「3」 「4」 「5」 「6」 10,000 35,000 15,000 40,000 20,000 45,000 25,000 50,000 30,000 55,000 ※ シート(1)にコード、顧客名、金額を入力すると、シート(2)にあるように該当するコードの先頭行の列に表示するようにしたいと思っています。 シート1で作業列を作りその作業列を基にシート2でVLOOKUP関数を使い‥シート2の10,000のセルの場合、 VLOOKUP(C$2,sheet1!$A$3,$D$12,4,false)として、下にコピーすると同じ金額になってしまいます。 セルが空白にならず、シート1の金額が上から順番にシート2に表記されるようにするにはどうしたらよいでしょうか。マクロはできませんので、関数で詳しく教えて下さい。宜しくお願いします。
- 締切済み
- オフィス系ソフト
- 条件に合う空白のセルをカウントしたい
Aシートに A B C D E F G H I J 1 あ 2 い 3 う 4 え Bシートに A 1 あ 2 い 3 う 4 え Aシートの数式VLOOKUPにて抽出しF1に”あ”を表示したのですが 条件としてA1の”あ”に対して 5マス以上空いていれば表示 5マス以下なら非表示 このように空白のセルをカウントして 条件に合う数式がわかりません。 何卒 ご指導のほどよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。 何とかこの方法で処理できました。