Função OFFSET no Excel apenas para dados não duplicados

Função OFFSET no Excel apenas para dados não duplicados

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

informação relacionada