dポイントプレゼントキャンペーン実施中!

sheet1   sheet2
A列    A列
400          '400-a
13394      '13394-d
1286       '1286-a


○sheet2の列の中から”400”を含むものを検索したいです。
vlookupでsheet2のB1= vlookup("*"&sheet1!a1&"*",a1:a10,1,0)
とあいまい検索できるか試してみたのですが上手くいきません。
期中で在庫システムを変更して変更後のデータがsheet2なのですがなぜかアポストロフィのようなものと-がついてしまい、なんとか新旧の在庫の製品コードが一致していることを確認したいのです。
よろしくお願い致します。

A 回答 (2件)

>なぜかアポストロフィのようなものと-がついてしまい、



という事は、全てのコードに、必ず"'"と"-"が両方とも付いているという事でしょうか?
 その辺りの条件が異なれば、関数の組み方も変わって来ますので、状況を明確に御教え願います。
 又、

>あいまい検索できるか試してみたのですが上手くいきません。

とは、どの様に上手く行かなかったのでしょうか?
 少なくとも、私が使用しているExcel2010であれば、"*"を付けて検索する事が出来ましたが、どの様な結果が出たために、質問者様が上手く行かないと判断されたのかが判らない事には、何処がまずいのかを判断する術が御座いません。


 ですから、質問者様から御教え頂いた情報が充分ではないため、上手く行くと断言する事が出来ない状態ですので、あくまで取り敢えずの話になりますが、以下の方法をお試し下さい。

 まず、Sheet2のコードで、Sheet1に存在し無いものを見分けるために、Sheet2のB1セルに次の数式を入力して下さい。

=IF(OR(INDEX($A:$A,ROW())="",COUNTIF(Sheet1!$A:$A,"="&SUBSTITUTE(LEFT(INDEX($A:$A,ROW()),FIND("-",INDEX($A:$A,ROW()))-1),"'",))),"","旧版に該当無し")

 次に、Sheet1にどんなコードが存在するのかを並べて表示させるために、Sheet2のC1セルに次の数式を入力して下さい。

=IF(INDEX(Sheet1!$A:$A,ROW())="","",INDEX(Sheet1!$A:$A,ROW()))

 次に、検索結果を表示させるためにSheet2のD1セルに次の数式を入力して下さい。

=IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIF($A:$A,"="&"'"&INDEX(Sheet1!$A:$A,ROW())&"-*"),VLOOKUP("'"&INDEX(Sheet1!$A:$A,ROW())&"-*",$A:$A,1,FALSE),"該当無し"))

 そして、Sheet2のB1~D1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました!上手くいきました。
私のエクセルは2007なのですが、sheet2に含まれるものをsheet1から検索することは出来たのですが
なぜかその逆は出来ませんでした。

お礼日時:2011/10/29 02:28

一例です。


Sheet2のA列のハイフンより左側の先頭のアポストロフィを除いたコードを対象としています
ので、相違する場合は読み捨て下さい。
尚、数式内のハイフンは半角なので全角の場合は変更して下さい。

Sheet2のB1に=IF(COUNTIF(Sheet1!A:A,(MID($A1,2,FIND("-",$B1)-2))),"一致","該当なし")
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。ただ頂いた関数を入力してみたのですが、該当なしと表示された箇所がなぜか一致するものがありました。きっと私のリストに問題があったのだと思います。ただ非常に勉強になり次の機会にまた使用させてもらおうと思います。

お礼日時:2011/10/29 02:33

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