Isso é muito mais fácil se você quiser criar algumas "colunas auxiliares".
É mais simples se você colocá-los na Folha 1 (você pode escondê-los,
ou coloque-os à direita (por exemplo, Colunas Y
e Z
),
se você quiser - ou você pode até colocá-los em outra folha.
Eu suponho que estamos usando as colunas Y
e Z
como colunas auxiliares
"Cust ID" e "Product ID" estão nas colunas A
e B
, respectivamente,
e os dados começam na linha 2 (com cabeçalhos na linha 1).
Insira o seguinte valor e fórmulas:
-
Y2
→0
-
Y3
→=IF(A3=A4, Y2, Y2+1)
-
Z2
→=IF(A1=A2, Z1 & ", " & B2, B2)
Arraste / encha Y3
e Z2
até o final dos dados.
Você deve ter algo assim:
AcolunaY
identificaointervalodelinhasparaumúnicocliente.SeapróximalinhativerumIDdeclientediferentedaquele(istoé,seestaéaúltimalinhaparaestecliente),adicionamos1aovaloranteriordeY
(ouseja,alinhaacima).Casocontrário,copieovaloranterior.
ColunaZ
constróialistadeprodutosparacadacliente.Sealinhaanteriortiveromesmonúmerodeclientequeeste,issosignificaquealinhaatualemnãoaprimeiralinhadessecliente,entãopegamosovalordeZ
dalinhaanterioreanexeoprodutodestafileira.Casocontrário,estaéaprimeiralinhadestecliente,entãosimplesmentepegamosoprodutodessafileira.(Asduasfrasesanteriorespodemfazermaissentidosevocêaslernaordeminversa.)
Agora,váparaSheet2.Omesmodeantes;Euassumireique"Cust ID" e "Produtos"
estão nas colunas A
e B
, respectivamente
e os dados começam na linha 2 (com cabeçalhos na linha 1).
Digite estas fórmulas:
-
A2
→=INDEX(Sheet1!A:A, MATCH(ROW()-1, Sheet1!Y:Y, 0))
-
B2
→=INDEX(Sheet1!Z:Z, MATCH(ROW()-1, Sheet1!Y:Y, 0))
e arraste / preencha.
Observe que as duas fórmulas têm uma expressão em comum:
%código%. Que encontra a primeira linha na Folha1
em que o valor MATCH(ROW()-1, Sheet1!Y:Y, 0)
é o número da linha atual (Folha2), menos 1.
Assim, Sheet2 Row 2 procura 1, Sheet2 Row 3 procura 2, etc.
Lembre-se, os valores de Y
sobem um na última linha para um cliente.
Assim, a fórmula na Coluna Sheet1!Y
extrai o valor A
para essa linha,
qual é o próximo ID exclusivo do cliente
e a fórmula na coluna Sheet1!A
extrai o valor B
para essa linha,
que é a lista de produtos para esse cliente: