• ベストアンサー

(Excel) VLOOKUPを使った検索で入力文字に近い物を選ばせるには?

EXCELのVLOOKUP関数を使って 短縮記号から会社名を検索できるようにしました。 その逆に会社名から短縮記号を検索するものを作ろうと思ったのですが 会社名が長かったりする為に会社名をデータのものと同じように入力するのが困難なです。 ある程度(名前の最初の数文字など)入力するとそれに近い名前のものを引っ張ってくるようにしたいと考えています。 どういう式になりますか? ちなみに下が作った関数式です。 =IF(ISNA(VLOOKUP(C4,DATA!A2:B39443,2,FALSE)),"",VLOOKUP(C4,DATA!A2:B39443,2)) 宜しくお願いします。

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

  • ベストアンサー
  • NNAQ
  • ベストアンサー率56% (104/184)
回答No.4

C4に会社名の最初の数文字を入力、 DATAシートのA列に会社名、B列に短縮記号が入力されているとします。 =IF(COUNTIF(DATA!A2:A39443,C4&"*")>1,"複数あり",IF(COUNTIF(DATA!A2:A39443,C4&"*"),INDEX(DATA!B2:B39443,MATCH(C4&"*",DATA!A2:A39443,)),""))

queen90
質問者

お礼

出来ました!ありがとうございます。

その他の回答 (3)

  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.3

例えばPHONETIC関数を使って、読み仮名の一部で検索するという方法ではいかがでしょうか。 手順は次の通りです。 1)「DATA」シートのA列の前に「会社名読み」の列を追加する(短縮記号はB列、会社名はC列になります。なおA列は以下の作業が終わったら、A列選択→右クリック→「表示しない」で非表示にしても構いません)。 2)検索に使うシートを「Sheet1」とし、「検索文字(読み仮名の一部)入力」「短縮記号表示」「会社名表示」のセルを適当に決める(例えばE4、F4、G4)。 3)「DATA」シートのA2を  =LEFT(PHONETIC(C2),LEN(Sheet1!$E$4)) とし、以下コピーとする(カタカナで表示されるので、ひらがなで表示させるために、C列を選択して「書式」メニュー→「ふりがな」→「設定」で、ふりがなの種類を「ひらがな」にします)。 4)「Sheet1」シートのF4、G4にそれぞれ  =IF(ISNA(VLOOKUP(E4,DATA!A2:B39443,2,FALSE)),"",VLOOKUP(E4,DATA!A2:B39443,2,FALSE))  =IF(F4="","",VLOOKUP(F4,DATA!B2:C39443,2)) と入力する。 以上で、「Sheet1」シートのE4に読み仮名の一部を入力すると、それに対応した短縮記号と会社名が表示されるようになります。 会社名(漢字)の一部だと、会社名の頭に(株)(有)などが付いていた場合に検索しづらいので読み仮名検索にしました。入力する検索文字数は、「DATA」シートの会社名読みの文字数が「DATA」シートのE4に入力した文字数に応じて変わりますので、何文字でも構いません。 なお、PHONETIC関数で表示された読みが正しいかどうかはチェックしておく必要があります(入力時に違った読みで入力・変換した場合は正しい読みが表示されません)。

queen90
質問者

お礼

会社名がすべて英語でしたので使えませんでしたが 勉強になりました。ありがとうございました。

noname#204879
noname#204879
回答No.2

「それに近い名前」とは“その文字を含む名前”でOKですか? VLOOKUP関数は複数の名前を取り出すことが出来ないので適切ではないと思います。 [検索条件範囲]にワイルドカードを使用できる[フィルタオプションの設定]が使えそうです。 試してみて分からない点があればお知らせください。 [フィルタオプションの設定]の使い方を理解した上で、上手く行かないことがあれば、どの部分でそうなのかをお知らせください。最初から丸投げはお断りしたいです。

queen90
質問者

お礼

ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

Vlookup関数での第1引数を、普通はA1などにするところを、MID(A1,1,5)などにすれば良いのでは。LEFT(A1,5)でも同じ。5は適当に 。全て固定長5桁にせざるを得ない。ワイルドカード式(*利用)はできない。 逆の索引をするには、検索値の列が左端列にある必要があるので 第2引数のテーブル指定範囲で、A,B、Aのように余分なA列をコピーしておかないといけないように思う。 当初はA、B列を指定し、後者ではB、A列を指定。

queen90
質問者

お礼

ありがとうございました。

関連するQ&A

  • VLOOKUP関数で検索できません

    A列に勤務時間帯、B列に人数を入力したリストがあります。 E1にVLOOKUP関数を入力しましたがエラーになるので困っています。 A1 → 8:00~18:00  B1 = 5 A2 → 9:00~19:00  B2 = 7 D1 → 8:00~18:00 E1 → =VLOOKUP(D1,A1:B2,2,0) チルダを抜くと検索できるようになりますが、 VLOOKUP関数でチルダは使えないのでしょうか。 チルダありでも検索できるうまい方法があれば教えて下さい。

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

  • VLOOKUP関数について

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

  • VLOOKUPの検索範囲について

    エクセルの関数で質問です。 Sheet1で  A B C      1  1 1       2  1 5      3  2 1      4  2 3 というデータがありSheet2に        A B       1  1 1       2  1 2      3  2 1      4  2 2      5  3 1 というデータがあります。 Sheet1のA1、B1やA2、B2と同様の並びをした行がSheet2にあるかどうか調べたいのですが、関数がわかりません。ちなみにSheet1のCの列に関数を入力したいと思ってます。 VLOOKUPで列Aの条件を満たし、列Bの条件を満たすものと言う検索条件してもうまくいきません。 教えてください。よろしくお願いします。

  • excel2007 vlookup関数 シート参照

    次のような関数をつくって利用しています =VLOOKUP($B$3,'1101'!$1:$1048576,2) ここで利用しているのは、シート名「1101」なのですが アクティブシートのセルに入力した名前に対応して 参照するシートを変更したいのです 上の式の1101のところに、セルA4やindirect(A4)などを いれようとしましたがうまくいきません 調べてみましたがうまく調べられないので 質問することに決めました。 ご指導よろしくお願いします。

  • VLOOKUPの検索範囲を入力に応じて変えたい

    Excel2007を使用しています。 個人別で経費データシートを入力し、全員の当月分データを別シート1枚にまとめようとしています。 当月分データシートJ2番地に指定番号を入力すると、個人シートからデータを参照してくる形を取りました。 =IF($J2="","",VLOOKUP($J2,社員名!$A$5:$I$2004,3,0)) この数式内検索範囲を、指定番号に応じてその該当する社員名に自動で変えることは可能でしょうか? ・J2 山田氏用指定番号  =IF($J2="","",VLOOKUP($J2,山田!$A$5:$I$2004,3,0)) ・J2 佐藤氏用指定番号  =IF($J2="","",VLOOKUP($J2,佐藤!$A$5:$I$2004,3,0)) 指定番号に応じて検索範囲の個人シートも変わり、それぞれのデータを拾ってくるようにしたいです。 もしくはもっと別に良い方法がありましたら教えていただきたいです。 質問がわかりづらかったら申し訳ありません。 上記関数もネット検索を繰り返しながらといったレベルです。

  • VLOOKUPに関して教えてください

    EXCEL97です VLOOKUP関数で =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)という式を入力して次の列にコピーすると =VLOOKUP($B$1,SHEET!$A$2:$Q$30,2,0)とコピーしてしまいますよね 次の行には=VLOOKUP($B$1,SHEET!$A$2:$Q$30,3,0)にしたい時があるのでいつも 手入力で2→3に変更するかVLOOKUP式を入れなおしているのですが 手入力せずに2→3をコピーできる方法ってありますか? VLOOKUP式を使うことが多く毎回めんどくさくて・・・ どなたか教えてくださいませんか?

  • VLOOKUP関数の検索条件

    いつも、色々教えて頂き有り難うございます。 VLOOKUP関数で =vlookup(検索条件, の検索条件には、記号で検索する事は出来るのでしょうか? 記号とは、○や△等です。 #N/A と結果が出てしまいます。  

  • 2つのSheetの数値を検索したい

    エクセルで2つのSheetのデータの個数を検索させたいのですが、 エラー値は空白にしたいので、 =IF(ISNA(VLOOKUP(B2,Sheet2!$A$2:$B$2607,2,FALSE)),"",VLOOKUP(B2,Sheet2!$A$2:$B$2607,2,FALSE)) という式を作ってうまくいったのですが、 この式に新たに同じsheet1の範囲(A2:B300)を追加したいのですが、 うまくいきません。 このB300はB400、B500というように日々増えていきます。 どのような式にすればいいでしょうか。

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

      A   B     C     D     E 1 あ AAA 2 い  BBB 3 う  CCC 4 え  DDD 5         お   い  =VLOOKUP(C5,A1:A4,2,0) VLOOKUP関数にて、質問です。 検索値候補1=C5のセル 検索値候補2=D5のセル 範囲=A1:B4 E5=関数 (ここに式を入れたい) 検索値候補1がない時は、候補2を検索する そんな式はどうすればよいですか? 素人ですので、おたすけください

専門家に質問してみよう