Primeiro de tudo, se você quiser combinar frases que contenham "Amoy Street", você precisará remover o ", Singapura" da primeira entrada (e os outros que o contêm, e da mesma forma com "(Cingapura) ”). Você pode fazer isso com uma fórmula em uma coluna auxiliar, portanto, suponhamos que sua lista minimizada de nomes de estradas esteja nas células B1
a B42
.
E suponha que suas sete sentenças de exemplo (ou dezessete mil, ou quantas você tiver) estão na Coluna C
. Digite
=AND(ISERROR(SEARCH(B$1:B$42, C1)))
na célula D1
e digite Ctrl + Deslocar + Enter .
Isso insere a fórmula como uma fórmula de matriz , fazendo com que ela apareça nas chaves:
%código%. Arraste / preencha para baixo para cobrir a coluna {=AND(ISERROR(SEARCH(A$1:A$3, B1)))}
.
Isso será avaliado como FALSE para cada frase ( C
value) que contiver uma string de C
e TRUE para cada uma que não o fizer.
Você pode filtrar isso. Se você não gosta do fato de esses valores estarem "atrasados", apenas envolva a expressão em B1:B42
:
=NOT(AND(ISERROR(SEARCH(B$1:B$42, C1))))
Isso é insensível a maiúsculas e minúsculas.
Se você quiser fazer distinção entre maiúsculas e minúsculas, substitua NOT( )
por SEARCH
.
Esta solução encontra substrings. Tornar as maiúsculas e minúsculas reduz a probabilidade
de falsos positivos como "Banson Road" e "Uboat Quay".
Se o nome da estrada nunca aparecer no início de uma frase, você poderá eliminar esses falsos positivos da correspondência de substring ao preceder um espaço a cada nome de estrada na coluna FIND
.
Se um nome de estrada puder aparecer no início de uma frase,
então faça isso e mude a fórmula para
=AND(ISERROR(SEARCH(B$1:B$42,
" " &
C1)))
Para lidar com "Mr. Connaught dirige um Mercedes ”, faça a mesma coisa, mas anexe os espaços. Isso ainda não vai lidar "O Sr. Connaught dirige um Mercedes?", então você pode querer seguir a rota que diferencia maiúsculas de minúsculas.
Eu testei esta solução para um pequeno número de strings. É possível que ele falhe se a lista de estradas for muito longa.