Уникальные идентификаторы - Найти и удалить дубликаты и заменить - PullRequest
0 голосов
/ 06 октября 2018

У меня очень простые пользовательские знания Excel.У меня есть электронная таблица, где я отслеживаю перезагрузку данных.Каждая введенная мною нагрузка получает уникальный номер нагрузки, который автоматически рассчитывается по формуле на основе имени калибра и постепенно увеличивающегося числа.На данный момент каждая загрузка, которую я ввожу, получает номер, даже если он повторялся ранее.Популярные загрузки, которые я повторяю, часто одинаковы, за исключением даты и количества выполненных раундов, но в настоящее время они будут иметь разные номера загрузок.Есть ли способ пропустить эти повторяющиеся загрузки и назначить ему предыдущий номер загрузки или вообще не назначать номер загрузки, с формулой, а не вручную?

Я знаю, что это требует много, но я 'Буду очень признателен за любую помощь!Я, безусловно, открыт для предложений, если это даже не лучший способ сделать это.

Пример рабочей книги:

https://www.dropbox.com/s/v5y1ufxjiosmnap/My%20Reloading%20Data%20-%20Sample.xlsx?dl=0

Вот что яМы уже пробовали:

В столбце Q2 объедините все критерии.

=C17&E17&F17&G17&H17&L17&M17&N17&P17

В столбце R2 найдите дубликаты.

=IF(COUNTIF($Q$2:$Q17, $Q17)>1, "Duplicate", "")

D2 - это Load #столбец.

=IF(R17="Duplicate","",(TEXT(C17,0)&"-"&TEXT(COUNTIF($C$2:C17,C17),"000")))

Это пропустит повторяющиеся загрузки и не даст им загрузку #, оставляя пустую ячейку.Я хотел бы найти и сопоставить, какой должна быть эта нагрузка # и вставить ее.Кроме того, когда последовательная нумерация возобновляется, она действует так, как если бы она считала дублирующую строку.Например, D2 может выглядеть следующим образом:

9mm-001
9mm-002

(пропущено для дубликата и оставлено пустым, но хотелось бы, чтобы он находил, соответствовал и вставлял дубликат загрузки #)

9mm-004 (I'd like to to be 9mm-003)

1 Ответ

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

Этого можно достичь с помощью формулы VLOOKUP или комбинации MATCH и INDEX.

VLOOKUP (вертикальный поиск) ищет совпадение в другой ячейке и возвращаетзначение из столбца смещения.Несоответствие, если вы используете FALSE в качестве последнего параметра, возвращает ошибку # N / A.

Таким образом, в D20 (например) вы могли бы, используя столбец Q в качестве определителя, использовать следующее, предполагаяу вас была копия D в столбце R:

=IFERROR(VLOOKUP(Q20,Q$1:R19,2,FALSE),[value for newly found loadno])

Эта формула вычисляет VLOOKUP - если это не находит запись, вычислите новое значение.VLOOKUP рассмотрит объединенный ключ в текущем столбце Q строки, выполнит поиск по всем предыдущим столбцам (обратите внимание, что он привязан к строке 1, но не привязан к нижней части диапазона, поэтому вы можете скопировать формулу), он использует столбец2 (Q - столбец 1, поэтому R - столбец 2) для результата и требует точного соответствия (FALSE).Если он не найден, верните NA и позвольте второй половине IFERROR вступить во владение.

Посмотрите, как вы поступите с этим.

Может MATCH INDEXработать лучше, потому что вам не понадобится дополнительный столбец R, поскольку VLOOKUP позволяет только смотреть справа от клавиши.

Вот решение INDEX и MATCH - немного сложнеепонимаю, но более гибкое решение.

=IFERROR(INDEX(D$1:D19,MATCH(Q20,Q$1:Q19,0)),[value for newly found load number])

Я предпочитаю это.

Внешняя функция говорит, верните n-е значение в списке.Внутренняя функция MATCH говорит, что найдите это значение (Q20) в этом списке (Q1: Q19).0 в качестве третьего параметра функции MATCH говорит о том, что совпадение должно быть точным.

...