Excel - продолжить последовательный уникальный идентификатор, если дубликаты пропущены - PullRequest
0 голосов
/ 07 октября 2018

У меня есть лист с перезагрузкой данных.D2 назначает уникальный идентификатор и затем последовательно увеличивается.Если дубликаты найдены, им присваивается один и тот же уникальный идентификатор.Затем следующая строка будет названа вне последовательности.
Для экземпляра в D2:

9mm-001
9mm-002
9mm-003
9mm-003 (Duplicate)
9mm-005 (Would like to read 9mm-004)
45 ACP-001
45 ACP-002
45 ACP-002 (Duplicate)
45 ACP-004 (Would like to read 45 ACP-003)
9mm-006 (Would like to read 9mm-005)
9mm-003 (Dupliate)
45 ACP-005 (Would like to read 45 ACP-004)
9mm-008 (Would like to read 9mm-006)
45 ACP-002 (Duplicate)
45 ACP-007 (Would like to read 45 ACP-006)
So on and so on but the data isn't sorted, can be random with repeats at any time

Вот формула в D2:

=IFERROR(INDEX(D$1:D2,MATCH(Q2,Q$1:Q1,0)),(TEXT(C2,0)&"-"&TEXT(COUNTIF($C$2:C2,C2),"000")))

Надеюсь, это имеет смысл.Я знаю, что это ОКР, и в долгосрочной перспективе это не имеет значения, но я бы хотел увидеть решение этой проблемы.Формула увеличивает количество даже с дубликатами.Несортированное случайное размещение и разные префиксы сбивают меня с толку.Если я сортирую формулы, не остается постоянным.Любая помощь приветствуется!

Образец: https://www.dropbox.com/s/v5y1ufxjiosmnap/My%20Reloading%20Data%20-%20Sample.xlsx?dl=0

1 Ответ

0 голосов
/ 07 октября 2018

Я бы использовал sumproduct здесь.Поместив эту формулу в ячейку D2, вы должны получить желаемый результат, если набор данных уже отсортирован:

=C2&"-"&TEXT(SUMPRODUCT(--($C$2:$C$123=$C2),--($R$2:$R$123<>"Duplicate"),--(ROW($C$2:$C$123)<=ROW(C2))),"000")

"-" просто преобразует диапазон в 1 (для истинных строк) и0 (для ложных строк) и наличие нескольких «-» аналогично функции AND.

...