Categorize os dados da String no Excel usando If-Statements aninhados ou, alternativamente, uma Tabela de Consulta

0

Estou tentando categorizar meus dados com base nos valores de string contidos em uma célula específica. Ou seja Se a célula P6 contiver a palavra "hospital" ou "sanatório", a célula B2 deve listar sua categoria como sendo "hospital", se P6 contiver "aeroporto", "terminal" ou "aviação", B2 deve listar "aeroporto".

Primeiro, tentei a minha sorte com uma função If, no entanto, não consegui aninhá-los corretamente.

=IF(SEARCH("stadium",$P6)>=1,"Sport")

Isso funciona como deveria. ou imprime a categoria correta ou dá 'VALOR! erro.

No entanto, quando tento estender as instruções, ele não reconhece os termos de pesquisa adicionados.

=IF(SEARCH("stadium",$P6)>=1,"Sport",IF(SEARCH("sanatorium",$P6)>=1,"Hospital"))

Isso ainda encontra a string "estádio", mas não reconhece "sanatório". Se P6 contiver a palavra "sanatório", isso ainda me dará #VALUE !.

Seria ótimo se você pudesse me apontar na direção certa ou, alternativamente, como eu poderia conseguir isso usando métodos alternativos, como tabelas de consulta.

    
por Turtur 08.12.2017 / 13:18

1 resposta

1

Isso porque, o SEARCH retorna um número ou um erro. Se a palavra não for encontrada, retornará um erro.

Portanto, se a célula não contiver stadium , o erro #VALUE será retornado para a primeira SEARCH e você não poderá tentar equacioná-la com um número e todos os curtos-circuitos da fórmula e #VALUE serão retornados.

Use ISNUMBER para superar. ISNUMBER retornará FALSE se o retorno for um erro:

=IF(ISNUMBER(SEARCH("stadium",$P6)),"Sport",IF(ISNUMBER(SEARCH("sanatorium",$P6)),"Hospital"))

Agora, como você imaginou, seria melhor e mais fácil criar uma tabela com os critérios de pesquisa e a saída esperada. Em seguida, use uma fórmula de tipo de pesquisa para retornar a saída correta:

=INDEX(F:F,AGGREGATE(15,6,ROW($E$1:INDEX(E:E,MATCH("zzz",E:E)))/(ISNUMBER(SEARCH($E$1:INDEX(E:E,MATCH("zzz",E:E)),A1))),1))

Isso iterará pela tabela e retornará a primeira saída da primeira correspondência.

    
por 08.12.2017 / 14:41