[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『アバウトな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("*"&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.