Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
  • Avatar do usuário
#73273
Prezados,

Estou com uma planilha a qual preciso fazer uma concatenação de valores da coluna F para uma única linha da Coluna CS e CT, contudo existem 2 variáveis:

Na coluna CS os valores a serem retornados são a concatenação da coluna F, até o conjunto de dados em que a Coluna E estiver igual e se a COluna CY estiver igual a 1, essa linha da coluna F não pode entrar na concatenação.

Na coluna CT os valores a serem retornados são a concatenação da coluna F, até o conjunto de dados em que a coluna E estiver igual e se a coluna CY estiver igual a 0, essa linha da coluna F não pode entrar na concatenação.
Imagem
Você não está autorizado a ver ou baixar esse anexo.
#73310
Exercitei aqui com macro, ainda tem que melhorar, mas preciso sair.

Dim lLoop As Long
Dim colCS As String
Dim colCT As String


lLoop = 2

While Sheets("Sheet1").Cells(lLoop, "E") <> ""
'Verifica se a posição na coluna E é diferente da posição anterior
If Sheets("Sheet1").Cells(lLoop, "E") <> Sheets("Sheet1").Cells(lLoop - 1, "E") Then
'Limpa as variáveis
colCS = ""
colCT = ""

'Verifa o que tem na coluna CY
If Sheets("Sheet1").Cells(lLoop, "CY") = 0 Then
colCS = Sheets("Sheet1").Cells(lLoop, "F")
Sheets("Sheet1").Cells(lLoop, "CS") = colCS
End If
If Sheets("Sheet1").Cells(lLoop, "CY") = 1 Then
colCT = Sheets("Sheet1").Cells(lLoop, "F")
Sheets("Sheet1").Cells(lLoop, "CT") = colCT
End If
End If
If Sheets("Sheet1").Cells(lLoop, "E") = Sheets("Sheet1").Cells(lLoop - 1, "E") Then
'Verifa o que tem na coluna CY
If Sheets("Sheet1").Cells(lLoop, "CY") = 0 Then
colCS = colCS & ";" & Sheets("Sheet1").Cells(lLoop, "F")
Sheets("Sheet1").Cells(lLoop, "CS") = colCS
End If
If Sheets("Sheet1").Cells(lLoop, "CY") = 1 Then
colCT = colCT & ";" & Sheets("Sheet1").Cells(lLoop, "F")
Sheets("Sheet1").Cells(lLoop, "CT") = colCT
End If
End If

lLoop = lLoop + 1
Wend
End Sub
#73354
Boa noite.

Usei esta fórmula em DG2, copiada para baixo, para criar uma coluna auxiliar para marcar início e fim de cada intervalo.

=SE(E2<>E1;MÁXIMO(DG$1:DG1)+1;"")

E esta outra com funções do Excel 365 ou posterior, para concatenar valores na coluna CS:

=LET(RangeF;ÍNDICE(ÍNDICE($F$2:$F$1000;CORRESP(MÁXIMO(DG$2:DG2);$DG$2:$DG$1000;0)):ÍNDICE($F$2:$F$1000;CORRESP(MÁXIMO(DG$2:DG2)+1;$DG$2:$DG$1000;0)-1);0);
RangeCY;ÍNDICE(ÍNDICE($CY$2:$CY$1000;CORRESP(MÁXIMO(DG$2:DG2);$DG$2:$DG$1000;0)):ÍNDICE($CY$2:$CY$1000;CORRESP(MÁXIMO(DG$2:DG2)+1;$DG$2:$DG$1000;0)-1);0);
FiltroF;FILTRO(RangeF;RangeCY<>1;"N/D");UNIRTEXTO("; ";1;FiltroF))

Good luck!
Você não está autorizado a ver ou baixar esse anexo.

=SE(MÊS(A1)&lt;7;&quot;1º sem&a[…]

Bom Dia Senhores. Tenho uma macro que preciso dei[…]

Free relationships without drama and obligations. […]

Girar Imagem e Zoom

Boa noite Teria alguma forma de dar um &quot;[…]

Valeu. Muito Obrigado!!!!!!!!

Pessoal, Ao clicar no botão Copiar (Guia C[…]

Procv com serro em vba

Resolvido

Bom dia, pessoal! com a data de nascimento e data […]

Estamos migrando para uma comunidade no Discord