Como faço para retornar uma das condições de uma instrução multi-condição se em uma macro do Excel?

0

Eu sei que todas as células na coluna A conterão um valor de um conjunto de valores. Geralmente há outro texto na célula, e é por isso que não posso simplesmente usar o valor da célula. Nesse caso, são cidades, por exemplo: São Francisco, Nova York e Seattle.

Meu objetivo é criar uma macro multi-condicional que, uma vez que uma de suas condições tenha sido atendida, colocará essa condição exata em uma célula específica. Então, no meu exemplo, uma das condições seria que a célula contivesse Seattle. Portanto, se a célula A3 contiver "Seattle", quero que a macro coloque "Seattle" na célula B3. Ou, se a célula A3 contiver "Nova York", eu quero colocar "Nova York" na célula B3. E assim por diante. Como faço isso?

    
por xxxRxxx 29.07.2015 / 22:19

1 resposta

0

Não é bonito, mas você pode usar algo assim na Cell B3:

=IF(IFERROR(SEARCH("San Francisco",A3),0),"San Francisco",IF(IFERROR(SEARCH("New York",A3),0),"New York",IF(IFERROR(SEARCH("Seattle",A3),0),"Seattle","")))

Para facilitar a visualização:

IF(
    IFERROR(SEARCH("San Francisco",A3),0)
    ,"San Francisco"
    ,IF(
        IFERROR(SEARCH("New York",A3),0)
        ,"New York"
        ,IF(
            IFERROR(SEARCH("Seattle",A3),0)
            ,"Seattle"
            ,""
        )
    )
)

Para dividi-lo, basicamente você usa SEARCH para descobrir se ele contém uma string de texto e retorna 1 ou #VALUE! Eu então uso o IFERROR para manipular #VALUE! e, em vez disso, mude para 0.

As instruções IF estão aninhadas:

IF (San Francisco)
[true]  "San Francisco"
[false] IF (New York)
        [true]  "New York"
        [false] IF (Seattle)
                [true]  "Seattle"
                [false] ""
    
por 30.07.2015 / 00:24