逆ワイルドカードを使用した Excel Match

逆ワイルドカードを使用した Excel Match

これは私のテーブルです:

   A                 B                   c
1  foo.com/page1     foo.com/page1?xyz
2  foo.com/page2     foo.com/page1?abc
3  foo.com/page3     foo.com/page8?xyz

列Bの各項目について、列Aに一致する項目があるかどうかを知りたい(結果は次のようになるはずです:B1>TRUE、B2>TRUE、B3>FALSE)

私はこれを試しました:

 =match(B1, A:A&"*")

しかし、それは機能しません。

何か案が?

答え1

この解決策はあなたの例に厳密に適用されます。

完全一致ではなく VLOOKUP 近似一致を使用すると、説明しているような「あいまい」一致を実行できるようになります。

=IFERROR(IF(LEFT(B1,LEN(VLOOKUP(B1,A:A,1,TRUE)))=VLOOKUP(B1,A:A,1,TRUE),TRUE,FALSE),FALSE)

基本的に、この数式は、単一の長い文字列を使用して最も近い一致を探し、多数の短い文字列を検索します。

  • 最初の近い一致を特定します

  • A列の一致のすべての文字が、左端の文字から始まるB列の文字列に表されていることを確認します。

  • Aマッチのすべての文字がB文字列に表現されている場合はTRUEを返します。

  • Aマッチのすべての文字がB文字列に表されていない場合はFALSEを返します。

弱点(実際のデータでは失敗する可能性がある理由):

例にはページ番号 1、2、3 が含まれています。列 B の文字列がページ 11 の場合、この数式は 1 に一致すると TRUE を返します (11 を探すことはありません)。

関連情報