Combinando dados (mas ignorando células em branco)

2

Estou tentando combinar as células diferentes de dados de texto no Excel. Atualmente, estou usando a fórmula:

=J3&", "&K3&", "&L3&", "&M3

Quando todas as minhas células contêm texto, o resultado é exatamente o que eu quero.

No entanto, em alguns casos, há células sem dados. No momento, minha fórmula apenas retorna "," se não houver dados nas células. Existe uma maneira de reescrever a fórmula para ignorar as células que não contêm dados?

    
por Nicky 15.05.2018 / 13:52

5 respostas

3

Com o Office 365 Excel, isso fica fácil.

O Office 365 Excel introduziu TEXTJOIN ()

=TEXTJOIN(", ",TRUE,J3:M3)

Com TRUE como o segundo critério, ele ignorará automaticamente todos os espaços em branco.

NOTA: Conheço o estado do Excel do Excel 2010, isto é para futuros leitores.

    
por 15.05.2018 / 14:44
0

Tente adicionar uma instrução IF() a cada célula:

=IF(J3<>"";J3;"")&(IF(K3<>"";", "&K3;""))&(IF(L3<>"";", "&L3;""))&(IF(M3<>"";", "&M3;""))

Observe a pequena alteração na fórmula da primeira instrução IF() .

    
por 15.05.2018 / 14:40
0

Tente isto:

=CONCATENATE(  IF(ISBLANK(J3),"",J3&", "),  IF(ISBLANK(K3),"",K3&", "),  IF(ISBLANK(L3),"",L3&", "),  IF(ISBLANK(M3),"",M3))

The Microsoft Excel ISBLANK function can be used to check for blank or null values.

Aqui a função ISBLANK() é usada para verificar se a célula tem um valor. Se não houver valor, será adicionada uma string "" em branco ao resultado. Caso contrário, o valor da célula junto com a string ", " é adicionado.

    
por 15.05.2018 / 14:37
0

Scott apresenta uma solução simples para as versões mais recentes do Excel. As outras três soluções (até agora) usam funções simples que funcionam em qualquer versão do Excel. No entanto, as vírgulas delimitadoras são na verdade um pouco mais complicadas do que essas fórmulas manipulam. Para conseguir isso nesse estilo de solução requer alguma lógica para cada vírgula.

Aqui estão as possíveis combinações de valores presentes e ausentes:

Aprimeiralinhanãopossuivaloresausentes.Asquatrolinhasseguintestêmumvaloremfaltaemcadaposiçãopossível.Aspróximasseislinhastêmdoisvaloresausentesemcadaposiçãopossível.Emseguida,asquatrolinhasdetrêsvaloresausentese,finalmente,todososvaloresausentes.Paraobterumavírgulaondeénecessárioeapenasondeénecessário,vocêprecisadealgumalógicaparacadavírgula.

Amaneiramaisfácildefazerissoéassociaravírgulaaovalor"próximo". Em cada posição de vírgula, não há vírgula se nenhum valor veio antes dele (que é um caso diferente para cada posição). Se houver algum valor anterior, você só deseja uma vírgula se a próxima posição tiver um valor. Então a lógica da vírgula é assim:

First comma:   =IF(J3="","",IF(K3="","",", "))        or  =IF(AND(J3<>"",K3<>""),", ","")
Second comma:  =IF(J3&K3="","",IF(L3="","",", "))     or  =IF(AND(J3&k3<>"",L3<>""),", ","")
Third comma:   =IF(J3&K3&L3="","",IF(M3="","",", "))  or  =IF(AND(J3&K3&L3<>"",M3<>""),", ","")

Coloquei cada vírgula em uma coluna separada para ilustrar o padrão com as várias combinações de valores:

Asoluçãoconcatenaosvalores(ouembranco,senenhum),comasvírgulas.Parafacilitaraleitura,aquiestáafórmulacomavírgulainseridacomoreferênciaàcéluladafórmula:

=IF(J3="","",J3) &N3 &IF(K3="","",K3) &O3 &IF(L3="","",L3) &P3 &IF(M3="","",M3)

A substituição das fórmulas de vírgula pela fórmula de resultado fornece:

=IF(J3="","",J3) &IF(AND(J3<>"",K3<>""),", ","") &IF(K3="","",K3) &=IF(AND(J3&k3<>"",L3<>""),", ","") &IF(L3="","",L3) &=IF(AND(J3&K3&L3<>"",M3<>""),", ","") &IF(M3="","",M3)

    
por 19.05.2018 / 05:36
-2

Insira esta fórmula em uma célula vazia onde você deseja obter o resultado Concatenado.

=IF(LEN(TRIM(J3))=0,",",J3)&IF(LEN(TRIM(K3))=0,",",K3)& IF(LEN(TRIM(L3))=0,",",L3)& IF(LEN(TRIM(M3))=0,"",M3)

Ou você também pode usar isso

=TRIM(J3 & K3 &","& L3&","&M3)

N.B. No exemplo acima, a Cell J3 não é uma célula em branco e, por favor, ajuste o endereço da célula conforme sua necessidade.

    
por 16.05.2018 / 13:07