Excel - Informa se uma string contém algum valor em uma coluna da tabela

3

Antecedentes

Estou usando o Excel 2013.

Eu tenho uma tabela do Excel chamada SiteCategories , com várias colunas Category e, em seguida, sites nessas colunas, assim:

Então,poderíamoschegaraessesvaloresusando=SiteCategories[Category1]

EutambémtenhoumalistadeURLs.PenseemURLscompletos,comohttp://www.sitea.com/page/page.html

Oqueeugostariadefazer

ParaessalistagigantedeURLs,gostariadetercolunasaoladodeles,dizendoseelesestãonacategoriaAoucategoriaB,assim:

EugostariaqueacorrespondênciafosseinsensívelamaiúsculaseminúsculasporqueosURLsnãosãonormalizados.Noentanto,seficarmaisfácil,possoprocessaroscamposouenvolvê-losemlower(),emboraeuimaginequeesseprocessotambémseriacapazdefazerisso.

Ondeestoupreso

Eupossofazercorrespondênciasepesquisasemumtexto,masestoutendoproblemasemumasériedetextos.

Essencialmente,oquequerodizeréque,sequalquertextonacolunadacategoriaespecificadaforencontradodentrodoURL(deumamaneiraquenãodiferenciamaiúsculaseminúsculas),oURLestaránessacategoria.

Noentanto,amaioriadasfunçõesMATCHeSEARCHnãopareceoferecersuporteàconsultadeumintervalodevalores.

Parecequeeuquerofazeroopostode question - enquanto essa solução usa um caractere curinga em um termo para encontrá-lo em várias células, desejo usar vários textos de célula como curingas em uma sequência e retornar true se algum deles for verdadeiro.

Como estou fazendo agora

Atualmente, a fórmula que estou usando é uma instrução OR que está usando um monte de fórmulas SEARCH , como abaixo (onde F3 é a célula com a URL):

=OR(ISNUMBER(SEARCH("sitea.com",F3)), ISNUMBER(SEARCH("siteb.com",F3)),ISNUMBER(SEARCH("sitec.com",F3)), ISNUMBER(SEARCH("sited.com",F3)),ISNUMBER(SEARCH("sitee.com",F3))) 

No entanto, isso é um pouco insustentável, já que os requisitos de quais sites variam em quais categorias mudam ao longo do tempo. Eu gostaria de poder colocá-los em uma tabela para torná-los facilmente editáveis, daí a pergunta.

    
por SeanKilleen 01.09.2015 / 16:59

1 resposta

1

Você pode usar uma fórmula de matriz digitada com ctrl + shift + enter. A pesquisa não diferencia maiúsculas de minúsculas, portanto, tudo bem.

=OR(IFERROR(SEARCH(SiteCategories[Category1],A2),0))

Aqui está a configuração para lidar com linhas em branco na tabela, graças a Kyle nos comentários.

=OR(IFERROR(IF(SiteCategories[Category2]<>"",SEARCH(SiteCategories[Category2],A‌​2),0),0))
    
por 01.09.2015 / 18:18