
これは私のテーブルです:
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 を探すことはありません)。