Concatenar células mas excluir vazios no Excel [duplicado]

1

Eu estou querendo saber como concatenar uma linha de células com valores separados por vírgulas, mas excluir células vazias.

Por exemplo, a lista seria:

A1 - Cão

B1 - "célula vazia"

C1 - Cat

Estou procurando uma fórmula que retorne --- > Cão, gato

Realmente aprecie sua ajuda!

    
por johnathon05 27.05.2015 / 23:10

2 respostas

1

Com valores possíveis em A1, B1 e C1 , em D1 digite:

=IF(A1="","",A1)&IF(B1="","",IF(A1<>"",", "&B1,B1))&IF(C1="","",IF(AND(A1="",B1=""),C1,", "&C1))

Isso evita usar espaços em branco e também evita usar vírgulas desnecessárias.

    
por 27.05.2015 / 23:52
0

O Excel não tem nenhuma função incorporada que possa fazer isso, existem soluções alternativas que acabam com valores codificados que eu realmente não gosto.

Como alternativa, você pode usar uma função definida pelo usuário

Function comb_cells(r As Range, Optional delim As String = " ") As String

    For Each c In r
        If IsEmpty(c.Value) Then
        Else
            If Len(comb_cells) = 0 Then
                comb_cells = c.Value
            Else
                comb_cells = comb_cells & delim & c.Value
            End If
        End If
    Next

End Function

Então a fórmula seria

=comb_cells(A1:C1,", ")

Infelizmente, funções definidas pelo usuário podem ser um problema, pois não funcionam fora dessa pasta de trabalho ou em outros computadores (dependendo de onde ela é salva), mas ainda acho que seria a melhor opção.

Essa função leva um intervalo que pode incluir tanto linhas quanto colunas para que cada comando faça um loop da mesma maneira que você leria (da esquerda para a direita, da próxima linha, da esquerda para a direita, etc.).

    
por 27.05.2015 / 23:27