Изменение повторяющихся значений в Excel
Есть очень большой массив данных (44 тысячи строк) содержащих в себе дату и время в одном столбце. Но некоторые значения приходили с сервера одновременно поэтому у них одинаковые значения. Помогите написать формулу в Excel для выделения всех одинаковых значений и если значение одинаковое то сместить на одну секунду. На скриншоте первый столбец необходим для сохранения порядка (так как данные времени идут не по порядку), во втором столбце отмечены повторяющиеся значения и уникальные.
Ответы (2 шт):
Развивая идею @Oopss, могу предложить обойтись просто уникальным идентификатором. "соединив первый и второй столбец" - это лишнее. После сортировки по метке времени нужно заполнить новый столбец числами по порядку.
Если диапазоны одинаковых значений неразрывны (значения расположены в соседних строках), то сортировать не нужно. Иначе подготовить данные - сделать сортировку по столбцу B (по возрастанию или убыванию).
В C2 вписать формулу, копировать на весь диапазон строк:
=ЕСЛИ(B2<>B1;B2;C1+1/86400)
Для понимания. Дата в Excel - целое число (24 часа = 1). 86400 - столько секунд в сутках. В формуле добавляем долю суток, равную секунде.
Если нужно заменить данные столбца B новыми:
- выделить диапазон с формулами, начиная с
C2, копировать; - выделить ячейку
B2, ПКМ - вставить как значения; - формулы можно удалить.
Вернуть предыдущий порядок строк - сортировка по столбцу A по возрастанию. Если при этом нужно оставить данные столбца С (т.е. не делать замену в столбце B), перед сортировкой: выделить диапазон с формулами, начиная с C2, копировать, ПКМ - вставить как значения.
P.S. @Tunker приметил (см. комментарий), что при наличии значений, которые отличаются незначительно, формулу нужно подкорректировать. Но тут проблема больше и корректировка не поможет. Если таких значений будет несколько, то задача в таком виде нерешаема. Пример на картинке (столбцы C, D)
Как выход: сортировка по возрастанию и добавление к нижним совпадающим значениям большего количества секунд (столбец E). Но насколько это правильно?


