Функция СМЕЩ в Excel только для недублированных данных

Функция СМЕЩ в Excel только для недублированных данных

Я хочу использовать функцию OFFSET, чтобы утроить данные в столбце. Но у меня есть некоторые дублирующиеся данные (иногда более 2 повторений), и я хочу утроить только один из них, а не оба, и сохранить другой. Вот мои данные и функция:

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

В этом примере 5YJSA3H17EFP30954 дублируется, но я просто хочу выполнить OFFSET для одного из них и сохранить другой, поэтому мне нужно 4 повторения.

решение1

Если вы введете их в B2 и C2

Би 2
=ЕСЛИОШИБКА(ЕСЛИ(И(A2=A1;B1=3);1;ЕСЛИ(И(A2=A1;B1<3);0;3));3)

С2
=ЕСЛИОШИБКА(СМЕЩ(B2;-1;0)+СМЕЩ(C2;-1;0);0)

а затем заполните ими столбцы B и C, и вы получите таблицы для:
B) того, сколько раз каждый элемент (в одной строке) должен повторяться в столбце
C) из какой строки смещения A1 выбирать повторяющееся значение.

Я не думаю, что этого можно добиться с помощью формул.

Необходимо использовать VBA; ниже вы найдете «подпрограмму» (с логикой/формулами, выбранными выше), которая создаст запрошенную таблицу, учитывая, что ваша таблица начинается с ячейки A1.

Подпрограмма createDupeTable()

  r = 1: c = 1 ' Предположение: для доступа к A1 с помощью Cells(r,c)
  br = 1: bc = c + 1 ' где начать вставку копий, Cells(br,bc)

 ' значение в "B1" (выше) всегда 3
  пз = 3

  Do While Cells(r, c).Значение <> ""
    a1 = Ячейки(r, c).Значение
    a2 = Ячейки(r + 1, c).Значение
    б1 = пз
    Если a2 = a1 и b1 = 3, то
      Z = 1
    Еще
      Если a2 = a1 и b1 < 3 Тогда
        Z = 0
      Еще
        Z = 3
      Конец Если
    Конец Если

    пз = Z
    Делать пока Z > 0
      Cells(br, bc).Value = Cells(r, c).Value ' копирует одно значение из списка
      Z = Z - 1
      бр = бр + 1
    Петля

    г = г + 1
  Петля
Конец субтитра

Результат:

     АБ
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

Связанный контент