• 締切済み

Vlookupでキーワードを含む場合に任意の列を持ってくる

現在、仕事中で解決方法が見つからずとても困っています。 A、B2つのデータをぶつけて、 AにB側にある情報を持ってこうとしています。 具体的には、【A】のA列の右側に【B】の(B列)にある数字を 持ってきたいと思っています。 【A】        【B】 (A列)       (A列) (B列) アヒル商事       アヒル   10  イルカ物産       クジラ    5  カエル商事       イルカ    3 クジラ物産    カエル    6 シャチ商事 ・ ・ ・ もしからした、とても基本的な方法で出来るのかもしれませんが 分かりません。 お手数ですが、誰か助けてください!

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

こんにちは! すでに回答されていますが・・・ 実際、関数でやろうとすると出来そうでなかなか難しいですね! 無理矢理ですが ↓の画像のように表を作ってみました。 尚、データに一致する会社名がない場合とか、同じ文字列を含んでいても、別会社の場合はエラーになります。 例えば、「アヒル商事」と「(有)アヒル」という別会社があったとしても 最初の行に「アヒル」と出てきたものだけに表示されます。 まず元データに連番を付けておきます。 その番号を参照して、他の表から値を返すと言う方法です。 補助列のE2セルに =IF(F2="","",IF(COUNTIF($B$2:$B$1000,"*"&F2&"*"),INDEX($A$2:$A$1000,MATCH("*"&F2&"*",$B$2:$B$1000,0)),"")) としてオートフィルで下へコピーします。 そして、C2セルに =IF(B2="","",VLOOKUP(A2,$E$2:$G100,3,0)) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 尚、余計なお世話かも知れませんが・・・ オートフィルタで「○○を含む」でデータを抽出し その数値欄を範囲指定して、別表の数値データをコピー&ペーストすると言うのはダメでしょうか? 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

takataka16
質問者

お礼

tom04様 画像付きのご丁寧な回答と解説、ありがとうございます。 ご教授いただいた関数で見事に解決できました。 とても勉強になりました!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

解答No2ですがご質問の場合にはVLOOKUP関数を使うことはできません。 アヒル商事をアヒルに変えてならできますが、いろいろなケースを考えるとそれも難しいですね。 単にA列の文字列で最後の2文字をとった形でVLOOKUP関数を使うとしたら次の式をシート1のB1セルに入力し下方にオートフィルドラッグします。 =IF(A1="","",VLOOKUP(LEFT(A1,LEN(A1)-2),Sheet2!A:B,2))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

基本的なことでできる内容ではないでしょう。 初めにAの表はシート1に、Bの表はシート2に入力されているとします。 そこでシート1のA1セルにアヒル商事と入力したとして、それをシート2で探す場合にアヒルとして探すのは簡単ではないですね。商事をとった文字列として探すのが一定のルールになっているのでしたらそれもよいのですが商事ばかりではなく物産とか多くのことが考えられますね。これから述べる方法はできるだけそれを避けようとした一つの方法と思ってください。 初めにシート2のA列にアヒルなどの文字列があり、B列に数値があるとします。そこでC列を作業列としてC1セルには次の式を入力して下方にオートフィルドラッグします。 =IF($A1="","",MATCH($A1&"*",Sheet1!$A:$A,0)) 式の意味ですがA1セルが空白ならば空白にして、そうでない場合にはA1セルの文字列を頭に持つ文字列のあるセルをシート1のA列で探し、その行番号を表示しなさいという意味です。 その後にシート1に戻ってB1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",INDIRECT("Sheet2!B"&MATCH(ROW(A1),Sheet2!C:C,0))) 式の意味はシート2のC列でシート1の行番号に一致する番号の行を求め、その行のB列における値を表示しなさいという意味です。

takataka16
質問者

お礼

KURUMITO様 ご回答ありがとうございました。 こちらの関数で見事に解決できました! 助かりました&感動しました! 本当にありがとうございました!

  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.2

【A】【B】の(A列)での部分一致で検索したいとのことでしょうか? 部分一致を実現するより、【A】で作業列を設け【B】の(A列)と一致させることを目指すほうが解決に近づくと思う

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

申し訳ありません 何をしたいのか、具体的に示してください または、正確な日本語で伝えてください 質問が曖昧な言葉で綴られているので、理解に時間がかかります と言うか理解不能です  A群,B群二つのデータを比較して?  A群と等しいB群側の文字を表示させたい と言うことでしょうか …普通に VLOOKUP関数でできますよ? たぶんできないので質問をされているのでしょうが、 ・何が分からないのか ・どのようにしたら、どんな結果になったのか を示すだけでも 解決の糸口を見つけることができると思います 仕事であれば、他の人に課題を依頼するために最低でも必要な情報を伝えるようにしましょう 少なくとも投稿された質問文だけでは解決できないと思います

takataka16
質問者

お礼

Cupper様 ご指摘ありがとうございました。 かなり焦っていたため、分かりずらい質問内容となってしまいました。 失礼いたしました。

関連するQ&A

  • A列に同じ文字列があればB列値を合算することは可能ですか

    エクセルで次のような事を行う事は可能でしょうか、毎月、同じことを行っているので、良い案があればぜひ教えて下さい。 列A 列B (株)A商事 20 (株)B社 10 DSS社 50 (株)B社 40 (株)A商事 30 と言うデータベースがあるとします。 列Aにある会社名の中で同じ会社があれば合計して列C、列Dに表示する事はかのうでしょうか? 結果としてこのように求めたいのです。 列A 列B 列C 列D (株)A商事 20 (株)A商事 70 (株)B社 10 (株)B社 50 C商事(株) 15 C商事(株) 15 (株)A商事 20 DSS社 50 (株)A商事 30 DSS社 50 (株)B社 40 非常に膨大な数があり困っています。よろしくお願いいたします。

  • EXCEL2007の文字列検索方法で困っています。

    EXCEL2007の文字列検索方法で困っています。 ひとつのセルに複数の全角、または半角文字列が「、(カンマ)」で区切って入力されています。 例、足利商事、織田商店、徳川物産など これとは別紙に対象先となるリストがあって 例、 明治商事 徳川物産 大正商事 平成物産・・・ ひとつのセルに、対象となるリスト内にある企業名があったら「1」カウントアップ、「2」 あったら、2というように該当件数を横に表示したいのですが、適当な関数が見つかりません。 なにか、良い方法はありますでしょうか。よろしくお願いします。

  • エクセルで、1列に羅列されたデータを複数の列で並び変えたいのですが。

    具体的には、現状A列に、 103-0001 東京都中央区日本橋茅場町1-1-1 (株)○○商事 山田 太郎 103-0002 東京都中央区日本橋茅場町2-2-2 (株)○○物産 山田 花子 という4行ごとのデータが400近く並んでいます。 これを、A列に郵便番号、B列に住所、C列に社名、D列に名前という風に並び替えたいのですが、1件ずつコピペするわけにもいかず、困っています。 どなたか、簡単な方法をご教示頂ければ幸いです。VBAは使用できませんが、簡単な関数なら指示通り使うことができます。私の検索方法がわるかったのか、同様の質問が見つけられませんでした。 よろしくお願いいたします。

  • EXCEL VBAで列に任意の数字があるかを確認

    EXCELのVBAを使用して、次を行いたいと思いますが、うまくいきません。 ①任意の列(下のB列)に任意の数字があるかを確認する ②ある場合、該当行を除き、ない場合は、そのまま。 例)A列   B列   りんご 100   みかん 150   りんご 120 上記のデータを任意の数字を「100」とした場合、 結果)A列   B列    みかん 150    りんご 120 にしたいと思います。 また、任意の数字を「200」とした場合、 結果)A列   B列    りんご 100    みかん 150    りんご 120 となります。 私なりに調べた結果、「InStr」と「AutoFilter」、「If ~ then ~ else」の組み合わせでできないかと思いましたが、うまくいきません。お手数をおかけしますが、ご教示のほどよろしくお願い申し上げます。

  • エクセル VLOOKUPについて

    こんばんは。 VLOOKUPを使って下記のA列の数字の中に、B列の数字が含まれているかどうか、 検索したいのですがうまくできません。A列とB列の数字が数値型と文字列で異なる為かと考え、 全部数値型に設定しましたがだめでした。 A列の数字の前に「00」がついただけで検索はうまくいかないものなのでしょうか。宜しくおねがいします。    A          B 003333     3333 004444     4444 005555     5555

  • A列とB列の数字が一致しているか調べたい

    エクセルで、A列・B列の数字が一致しているか調べる方法(関数?)を教えてください。 もし一致していなければ(A列にあってB列にない、もしくはその逆)、 何らかの手段で一致していない数字をわかるようにしたいのですが 可能でしょうか? A列 B列 ------------------ 1   6 2   5 3   4 4   7 5   9 6   6

  • エクセルについて A列に書いた数字がB列にも

    初心者です なんと言っていいかわかりませんが、A列に入れた数字がB列にも同じように出る方法は、ありませんか。たとえば、A1に5と入れたらB1にも5 A5に8と入れたらB5にも8となるようにしたく、またそれが、ずっと続くようにしたいのですが。        それと別にA1にあらかじめ40と数字入っているとしてB1に1を入れたときA1の数字はそのままで青といったようにしたく、いくら下にいっても続くようにしたいのですが無理でしょうか。よろしくお願いします  

  • エクセルの列番号表示について

    エクセルを表示したときにA列B列・・・・と右側に進んでいくと思いますが この表示が急に1・2・3・4・・・・と数字になってしまいました。 表記が変わるだけならいいのですが、関数の表記も複雑になり入れ子の状態で良くわからないし、 やっぱり使いにくいので、どなたか元のAB列に戻す方法を教えてください。

  • vlookup について。

    基本的な質問でごめんなさい。 A      B           D     E 鈴木               鈴木    100 川口               川口     200 大島               大島     300 相川               相川     400 佐藤               佐藤     500 DE列の表を検索して、B列に数字を表示したかったのですが、検索の結果、 鈴木         500   川口          #N/A 大島          300 相川          #N/A 佐藤          #N/A と、なるのです。もちろん表の場所を変えてみたり何度もやりなおしてみたりしても同じなのです。いったい、何がいけないのでしょうか?今まで当たり前のようにできていたのに………。

  • エクセルで、2つの列で共通する数字には「◎」などの印を付けるには・・・

    エクセルで、2つの列で共通する数字には「◎」などの印を付けるには・・・。 A1からA1000まで、「1~1000」の連番が入力されています。 C列には、C1からC6に、「3」「29」「58」「94」「681」「736」が在るとします。 このC列の6個の数字と共通するA列の連番の右側のB列に、「◎」などの記号を表示させたいのですが、どのようにすれば可能ですか?

専門家に質問してみよう