
Quero usar a função OFFSET para triplicar os dados em uma coluna. Mas tenho alguns dados duplicados (às vezes mais de 2 repetições) que quero apenas triplicar um deles, não os dois, e manter o outro. Aqui estão meus dados e função:
=OFFSET($A$2,INT((ROWS($A$2:A2)-1)/3),0)
A
2 5YJSA3H17EFP49729
3 5YJSA3H17EFP41128
4 5YJSA3H17EFP30954
5 5YJSA3H17EFP30954
6 5YJSA3H17EFP30212
7 5YJSA3H17EFP30050
Neste exemplo 5YJSA3H17EFP30954 está duplicado mas eu só quero realizar OFFSET em um deles e manter o outro, então quero ter 4 repetições disso.
Responder1
Se você inseri-los em B2 e C2
B2 =SEERRO(SE(E(A2=A1;B1=3);1;SE(E(A2=A1;B1<3);0;3));3) C2 =SEERRO(DESVIO(B2;-1;0)+DESVIO(C2;-1;0);0)
e, em seguida, preencha as colunas B e C com elas, você obterá tabelas para:
B) quantas vezes cada item (na mesma linha) deve se repetir na coluna
C) de qual linha de deslocamento A1 escolher o valor repetido.
Agora, não acho que isso seja possível com fórmulas.
VBA precisa ser usado; abaixo você encontra um "sub" (com as lógicas/fórmulas escolhidas acima) que irá criar a tabela solicitada, dada a sua tabela começando em A1
SubcriarDupeTable() r = 1: c = 1 'Suposição: para acessar A1 com Cells(r,c) br = 1: bc = c + 1 ' onde começar a inserir cópias, Cells(br,bc) ' valor em "B1" (acima) sempre 3 pz = 3 Faça enquanto células (r, c).Value <> "" a1 = Células (r, c).Valor a2 = Células (r + 1, c).Valor b1 = pz Se a2 = a1 E b1 = 3 Então Z = 1 Outro Se a2 = a1 E b1 <3 Então Z = 0 Outro Z = 3 Fim se Fim se pz = Z Faça enquanto Z > 0 Cells(br, bc).Value = Cells(r, c).Value ' copia um valor da lista Z = Z - 1 br = br + 1 Laço r = r + 1 Laço Finalizar sub
O resultado:
AB 1 5YJSA3H17EFP49729 5YJSA3H17EFP49729 2 5YJSA3H17EFP41128 5YJSA3H17EFP49729 3 5YJSA3H17EFP30954 5YJSA3H17EFP49729 4 5YJSA3H17EFP30954 5YJSA3H17EFP41128 5 5YJSA3H17EFP30212 5YJSA3H17EFP41128 6 5YJSA3H17EFP30050 5YJSA3H17EFP41128 75YJSA3H17EFP30954 8 5YJSA3H17EFP30954 95YJSA3H17EFP30954 10 5YJSA3H17EFP30954 115YJSA3H17EFP30212 12 5YJSA3H17EFP30212 135YJSA3H17EFP30212 14 5YJSA3H17EFP30050 15 5YJSA3H17EFP30050 16 5YJSA3H17EFP30050