[[20150329150411]] 『アバウトなVLOOKUP関数で検索出来ないか教えて』(ya) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『アバウトなVLOOKUP関数で検索出来ないか教えて』(ya)

列Bと列Cにデーターが有ります。(6000行)
セルD2に商品コード・名称の3456 258うしを記入し
セルE2にVLOOKUP関数でB列とC列から数量56を求める事は出来るのですが
商品コード・名称の左から4桁は席次番号で都度変更されます。
そこで、都度A列に列を挿入しMID関数で3桁から始まる商品コード・名称を抜出してVLOOKUP関数で数量を検索していました。
都度A列に列を挿入しなくてもアバウトな検索で数量を検索できないでしょうか
現在の関数:セルE2=VLOOKUP(D2,A:C,3,FALSE)
希望するVLOOKUP的な関数:セルE2=VLOOKUP(D2,B:C,2,FALSE)

	A	     B    C	     D	 E
1		商品コード・名称 数量	商品コード・名称 数量
2 123さかな	9876 123さかな	  23	258うし      56
3 147ぶた	6543 147ぶた	  45		
4 258うし	3456 258うし	  56		
5 556とり	1234 556とり	  78		
6 456虫	    1593 456虫	  12		

宜しくお願い致します。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 E2 : =IFERROR(INDEX(B$2:B$6,MATCH("*"&D2,B$2:B$6,0)),"")

 ではいかがですか。

(β) 2015/03/29(日) 15:49


β様
有難うございました。
VLOOKUP関数の検索値に式を記入しましたら出来ました。
明日から、作業が1工程減りますので時間が短縮できます。
助かりました。
(ya) 2015/03/29(日) 16:03

 =VLOOKUP("*"&D2,A$2:C$6,3,FALSE)
 でいいのでは?

 エラー処理付けるのであれば
 =IFERROR(VLOOKUP("*"&D2,A$2:C$6,3,FALSE),"")
 で。

 以下VLOOKUP関数のヘルプから。

 >検索の型 が FALSE で検索値が文字列の場合、検索値で疑問符 (?) またはアスタリスク (*) をワイルドカード文字として使用することができます。
 >疑問符は任意の 1 文字を表し、アスタリスクは任意の文字列を表します。
 >通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前にチルダ (~) を付けます。

 修正
 A列を挿入しない状態で
 =IFERROR(VLOOKUP("*"&D2,A$2:B$6,2,FALSE),"")
 だった。
(ねむねむ) 2015/03/30(月) 09:19

 =SUMIF(B$2:B$6,"*"&D2,C$2:C$6)
 でもいいのかな。
(se_9) 2015/03/30(月) 09:51

 > VLOOKUP関数の検索値に式を記入しましたら出来ました。

 VLOOKUPの検索値を何にして解決したのでしょうか?
 
 商品コードが3桁なのに、データが6,000件もあるということは
 同じ商品コードが重複してるということですよね?
 重複してる場合はどうなればいいんですか(どの数量が返ればいいのか)?

 VLOOKUPだったら検索値を上から探していって最初に見つかった行の値が返ります。
 本当にそれでいいのかどうか。

 それとも実際の商品コードは4桁以上で重複はないということなんですか?
 まさか同じ商品コードでも品名が違うものがあるなんてことないですよね?

 これもないとは思いますが、3桁と4桁の商品コードが混在していて、さらに品名が同じだったら、
 例えば「258うし」の他に「3258うし」というのがある場合、検索値にワイルドカードを使うときは注意を要します。

 その場合、B列の商品コードの前が必ず半角スペースなら
 検索値を "* "&D2 にすればいいかもしれません。 
 
 実際のデータがサンプルとは全く別物という可能性もありますが・・・
 
(JKT) 2015/03/30(月) 13:13

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.