Función OFFSET en Excel solo para datos no duplicados

Función OFFSET en Excel solo para datos no duplicados

Quiero usar la función OFFSET para triplicar los datos en una columna. Pero tengo algunos datos duplicados (a veces más de 2 repeticiones) y solo quiero triplicar uno de ellos, no ambos, y conservar el otro. Aquí están mis datos y función:

 =OFFSET($A$2,INT((ROWS($A$2:A2)-1)/3),0)
               A
 2      5YJSA3H17EFP49729
 3      5YJSA3H17EFP41128
 4      5YJSA3H17EFP30954
 5      5YJSA3H17EFP30954
 6      5YJSA3H17EFP30212
 7      5YJSA3H17EFP30050

En este ejemplo, 5YJSA3H17EFP30954 está duplicado pero solo quiero realizar OFFSET en uno de ellos y conservar el otro, así que quiero tener 4 repeticiones de eso.

Respuesta1

Si los ingresa en B2 y C2

B2
=SIERROR(SI(Y(A2=A1;B1=3);1;SI(Y(A2=A1;B1<3);0;3));3)

C2
=SIERROR(DESPLAZAMIENTO(B2;-1;0)+DESPLAZAMIENTO(C2;-1;0);0)

y luego complete las columnas B y C con ellas, obtendrá tablas para:
B) cuántas veces cada elemento (en la misma fila) debe repetirse en la columna
C) de qué fila de desplazamiento A1 seleccionar el valor repetido.

Ahora bien, no creo que esto sea posible lograrlo con fórmulas.

Es necesario utilizar VBA; a continuación encontrará un "sub" (con la lógica/fórmulas seleccionadas de arriba) que creará la tabla solicitada, dada su tabla que comienza en A1

Sub crearDupeTable()

  r = 1: c = 1 ' Supuesto: para acceder a A1 con Celdas(r,c)
  br = 1: bc = c + 1 ' dónde empezar a insertar copias, Celdas(br,bc)

 ' valor en "B1" (arriba) siempre 3
  pz = 3

  Hacer mientras celdas (r, c). Valor <> ""
    a1 = Celdas(r, c).Valor
    a2 = Celdas(r + 1, c).Valor
    b1 = pz
    Si a2 = a1 y b1 = 3 entonces
      Z = 1
    Demás
      Si a2 = a1 y b1 < 3 entonces
        Z = 0
      Demás
        Z = 3
      Terminara si
    Terminara si

    pz = Z
    Hacer mientras Z > 0
      Cells(br, bc).Value = Cells(r, c).Value ' copia un valor de la lista
      Z = Z - 1
      br = br + 1
    Bucle

    r = r + 1
  Bucle
Subtítulo final

El resultado:

     AB
1 5YJSA3H17EFP49729 5YJSA3H17EFP49729
2 5YJSA3H17EFP41128 5YJSA3H17EFP49729
3 5YJSA3H17EFP30954 5YJSA3H17EFP49729
4 5YJSA3H17EFP30954 5YJSA3H17EFP41128
5 5YJSA3H17EFP30212 5YJSA3H17EFP41128
6 5YJSA3H17EFP30050 5YJSA3H17EFP41128
7 5YJSA3H17EFP30954
8 5YJSA3H17EFP30954
9 5YJSA3H17EFP30954
10 5YJSA3H17EFP30954
11 5YJSA3H17EFP30212
12 5YJSA3H17EFP30212
13 5YJSA3H17EFP30212
14 5YJSA3H17EFP30050
15 5YJSA3H17EFP30050
16 5YJSA3H17EFP30050

información relacionada