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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord