アプリ版:「スタンプのみでお礼する」機能のリリースについて

初歩的な質問で申し訳ございません。
御存じの方いらっしゃいましたら、ご教授頂きたく思います。

ただいまVLOOKUP関数を使い、A列の住所に対応するコードを
K列・L列の元の表と対応させながら、、B列に振ると言う作業をしております。
     A                  B       K        L
 1 横浜市港南区○町1-2-1             地区       コード
 2 横浜市金沢区△町1-2-3            横浜市緑区    横浜A
 3  横浜市都筑区□町4-5-7            横浜市港南区  横浜B
                               横浜市金沢区  横浜C           
                               
A列とK列の値が完全一致(吻合)している場合は、上手くいくのですが、
上記のようにA列は全住所でK列が住所の一部と言うように、両者の値に齟齬
 がある場合、検索方法を「TRUE」にしても、 ワイルドカードを使っても、Bに適 
 確なコードをふることができません。
 また複数の関数を駆使し、新たな関数を拵えるほど、エクセルに通暁しておりま せん。
 解決法がありましたら、何卒お教え下さい。期限が切迫している状況です。
 宜しくお願い申し上げます。

A 回答 (4件)

ワイルドカードの逆引きになるので,綺麗なVLOOKUPでは解決できません。




作成例(但し前方一致の場合):
  K列     L列
1 空白     該当無し
2 地区     コード
3 横浜市緑区  横浜A
4 横浜市港南区 横浜B
5 横浜市金沢区 横浜C


  A列            B列
1 横浜市港南区○町1-2-1

B1:
=INDEX(L:L,MIN(IF(ISERROR(FIND($K$3:$K$5,A1)),"",ROW($K$3:$K$5))))
と記入し,コントロールキーとシフトキーを押しながらEnterで入力する
    • good
    • 0
この回答へのお礼

即応頂き、心より深謝申し上げます。無事問題を解決することが出来ました。
有難うございました。

お礼日時:2010/03/13 19:43

問題点は即ち


他の方も指摘されているとおり
「検索キーに不要な部分が含まれている」という一事につきないと思います
なので要らないものを省けば当然無問題になるのではないでしょうか?
拝見したところK列の検索キーが全て「区」で終わっているようなので
=VLOOKUP(MID($A1,1,MIN(FIND($A1,"区"))),$k$2:$l$4,2,0)
としてみては如何でしょうか

もしK列の検索キーが「区」では必ずしも終わらないのであれば
例えば「市」や「町」、「村」で終わる場合が含まれるのであれば
=VLOOKUP(MID($A1,1,MIN(INDEX(FIND($A1,{"市","区","町","村"}),,)))&"*",$k$2:$l$4,2,0)
とすればいけるかな?
と思います

実際に動作検証をしてないので不安ではあるのですが
この解答が御役に立てれば幸いです。
    • good
    • 1
この回答へのお礼

即応頂き、心より御礼申し上げます。今後の参考となる案出も頂き、有難うございました。

お礼日時:2010/03/13 20:00

こんばんは!


すでに良い回答は出ていますので・・・
参考程度で目を通してみてください。

配列数式になってしまいますので、この画面からコピー&ペーストする場合は
↓の画像のB2セルに数式を貼り付け後、F2キーを押す、又はB2セルでダブルクリック、又は数式バー内で一度クリックします。
Shift+Ctrl+Enterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

B2セルに
=IF(OR(ISNUMBER(FIND($K$2:$K$4,A2))),INDEX($L$2:$L$4,SUMPRODUCT((ISNUMBER(FIND($K$2:$K$4,A2)))*ROW($1:$3))),"")
として、Shift+Ctrl+Enterキーです。

これをオートフィルで下へコピーすると画像のような感じになります。

以上、参考になれば幸いです。m(__)m
「VLOOKUP関数 、住所、 部分一致 」の回答画像3
    • good
    • 0
この回答へのお礼

即応頂き、陳謝申し上げます。寡聞な私のために、画像まで添付していただき有難うございました。

お礼日時:2010/03/13 19:52

K列のデータの部分一致でL列の値を検索するなら以下のような関数になります。



=INDEX(L:L,MIN(INDEX((ISERROR(FIND($K$1:$K$100,A2))*1000+ROW($K$1:$K$100)),)))&""
    • good
    • 0
この回答へのお礼

即応頂き、有難うございます。即妙な回答有難うございました。

お礼日時:2010/03/13 19:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!