Guru do Excel + Power BI

Sua dose diária de Power BI e Excel

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.
FORMULA QUE TRAVESSE CONTAGIRO

Tente em F4: =SE($E4=&quot;&quot;;&qu[…]

Fico Feliz em ter ajudado em algo!! Para compra e […]

Abrir duas Planilhas

Boa Tarde, Osvaldo, testei como vc falou, e funcio[…]

Distribuir trabalho presencial

Boa Tarde!!! Veja se atende o que vc precisa, n&at[…]

Bom dia. Segue uma opção Até[…]

Wadson, Boa Noite!!! Trabalhar no campo do imagin&[…]

Data maior e menor

Caro Denílson, Boa Noite! se a planilha est[…]

Carregar ComboBox em branco

Caro Dunguinha, até dá para ir em ci[…]