• ベストアンサー

Excelの関数が分かりません。Vlookupで出来ると思ったのですが、出来ませんでした。

すいません。自分が馬鹿なもので・・・さっぱりです。 A  B  C  D   E 1  梨 柿 苺 山下 2 芋 米 栗 鈴木 3 鳥 馬 羊 松本 4 魚 犬 猫 田中 というシートがあって。 別シートで A  B  C 1  猫 田中 2 芋 鈴木 3 梨 山下 4 犬 田中 というように、B列を検索してC列に人の名前を返す 例えば「猫」を前のシートから検索して一致する 「田中」の名前を返したいとき、どのような関数を使えばいいですか? vlookupだと検索範囲が1列しか検索できないから、どうしても複数列を検索したいもので・・・

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.7

NO2です。 同一の数式で問題ないと思います。 IF($A1<>"",INDEX(Sheet1!D:D,SUMPRODUCT((Sheet1!$A$1:$C$4=$A1)*ROW(Sheet1!$A$1:$A$4))),"") 因みにROW()関数は、検索範囲の行範囲を設定して下さい。

gastronome
質問者

お礼

ありがとうございました。 試験的に作ったデータでは完璧に出来ました。 あとは、実際のデータで行って見ます。

その他の回答 (6)

回答No.6

=INDEX(Sheet1!$E$1:$E$7,SUMPRODUCT((Sheet1!$A$1:$D$7=A1)*$A$1:$A$7)) $A$1:$A$10→$A$1:$A$7としてください。 その前の$A$1:$D$7と行数を合わせる必要があります。 A列が通し番号ではない場合、 =INDEX(Sheet1!$E$1:$E$7,SUMPRODUCT((Sheet1!$A$1:$D$7=A1)*ROW($A$1:$A$7))) 基本的にはNo.5さんと同じです(No.5さんは空欄時の処理も行っています)。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

次の方法は如何でしょうか。 =IF($B1<>"",INDEX(Sheet1!E:E,SUMPRODUCT((Sheet1!$B$1:$D$5=$B1)*ROW(Sheet1!$A$1:$A$5))),"")

gastronome
質問者

お礼

ありがとうございます。なんか出来かけてきました。 大変恐縮ですが、教えてください。 下記の表がExcelの表として、「梨」をA1とした場合    A  B  C  D 1  梨 柿 苺 山下 2  芋 米 栗 鈴木 3  鳥 馬 羊 松本 4  魚 犬 猫 田中 というシートがあって。 別シートで    A  B 1  猫 田中 2  芋 鈴木 3  梨 山下 4  犬 田中 このような場合でも同じような関数でいいですか? とくにROWのところが分からなくて・・・

回答No.4

B:Dの中に重複するものがないのであれば、以下のようになります。 (A列は通し番号であるとみなしました。) =INDEX(Sheet1!$E$1:$E$4,SUMPRODUCT((Sheet1!$B$1:$D$4=B1)*$A$1:$A$4))

gastronome
質問者

お礼

ありがとうございます。 しかし、何度やっても#VALUEになるのですが・・・ =INDEX(Sheet1!$E$1:$E$7,SUMPRODUCT((Sheet1!$A$1:$D$7=A1)*$A$1:$A$10))  どこかおかしいところはありますか?

回答No.3

できんわけではない、ということで。 エラーを拾ってそれぞれVLOOKUP関数の参照をずらしてみました。 具体的には参照元の表をa1:e5に、目的の表をA13:C17に張ったと仮定した場合、以下のような式でいけることは確認しました。 =IF(ISERROR(VLOOKUP(B15,$B$2:$E$5,4,FALSE))=FALSE,VLOOKUP(B15,$B$2:$E$5,4,FALSE),IF(ISERROR(VLOOKUP(B15,$C$2:$E$5,3,FALSE))=FALSE,VLOOKUP(B15,$C$3:$E$5,3,FALSE),VLOOKUP(B15,$D$3:$E$5,2,FALSE))) できる、というだけで実用的かどうかというとどうでしょうか。私は通常使わないでしょう。

gastronome
質問者

お礼

ありがとうございます。エラーを拾ってやる方法は自分も考えましたが、実際に苦戦しているデータは40列ぐらいあるので、文字数が限界でした。

  • yossy0426
  • ベストアンサー率24% (32/130)
回答No.2

どうもです。 元のデーターをいじれるか?ですかそのままでは無理なような・・・・ A  B   梨 山下  柿 山下 苺 山下 芋 鈴木 米 鈴木 栗 鈴木 鳥 松本 馬 松本 羊 松本 魚 田中 猫 田中 犬 田中 って感じでないと出来ないような気がします。 あとは賢い方のレスまちですかね

gastronome
質問者

お礼

ありがとうございます。賢い人のレスを待ってみます。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

別シートの猫を使って田中を検索したいのでしたら、 =VLOOKUP(B1,シート!D1:E4,2) で検索できます。 ただし、シート!D1:E4の部分はD列が昇順で並んでいる必要があります。

gastronome
質問者

お礼

ありがとうございます。 けど仮に「馬」と入れたら、「松本」を引っ張ってきますか?

関連するQ&A