Здравствуйте. Помогите пожалуйста решить задачу при помощи макроса. Дано: Столбец в текстовом формате состоящий из цифровых данных. Пример:
00013
00014
00015
00016
00017
00018
00019
00022
00023
00023
00025
00026
Данные идут не по порядку и есть значения, которые имеют одинаковые значения (но идут всегда друг за другом, далее в столбце эти данные отсутствуют). Дубли могут быть два, три и более раз. Необходимо, задать нужное значение первой ячейки (например A4=00001) и получить перенумерованный список, в котором значения будут идти по порядку, но когда будут встречаться строки с одинаковыми значениями подряд, такие строки дублируются столько-же раз, сколько было строк с одинаковыми значениями изначально, по формуле "значение предыдущей строки+1", а дальше нумерация продолжается:
00013
00014
00015
00016
00017
00018
00019
00020
00021
00021
00022
00023
Со словесным описанием задачи думаю справился на троечку, прилагаю файл пример. Спасибо.
Не уверена, что правильно поняла задачу, но вот что-то наклепалось - смотри вложение. Там формулами получен такой же столбец (D), как у Вас. Он также с нулями. Ничего, что этот столбец не воспринимается как число?
_Igor_61 написал: Здравствуйте! А откуда после перенумерации взялось 21 и куда делась одна 23?
Был последовательно пронумерованный список (ID товара). Некоторые строки были удалены. Список сократился (условно) на 10 строк. Затем появились дубли строк, которые должны иметь и тот-же ID (прайс для Битрикса, при наличии нескольких свойств товара, необходимо две и более строк, в которых разные только свойства, а ID должен быть одинаковый). Если бы не необходимость в дублировании ID никаких проблем не возникло-бы, а так, суть именно в том, что текущая нумерация неважна, важна именно последовательность. а там, где идут два одинаковых значения они и должны остаться одинаковыми из расчета "предыдущая строка+1". По этому 23 и "куда-то делась", дальше она "вернётся".
Цитата
_Igor_61 написал: И почему обычная сортировка не подходит для этой задачи?
Потому, что необходима сортировка по другой ячейке да и опять-же, сортировка не исправит нумерацию, а перенумерация растягиванием ячейки естественно уничтожит дубли ID
Цитата
Пытливый написал: Здравствуйте. Может, формулой подойдет, зачем вам этот макрос?
Лист имеет около 7000 строк... Создать колонку, ввести формулу, растянуть до конца, скопировать значения на прежнее место... нет, конечно, если с макросом не сложится и формулой воспользуюсь, просто задача будет не разовая, да как не крути, макрос по удобству будет на голову лучше (ИМХО)
Цитата
nastya2018 написал: Не уверена, что правильно поняла задачу, но вот что-то наклепалось
Большое спасибо! Если с макросом не сложится, Ваша формула мне кажется подойдёт (опробовал на тестовом файле, более тщательней проверю на рабочем). И да, формат ячейки нужен именно текстовый иначе после экспорта в CSV нули порежутся, а они мне очень нужны.
Newsky13, всё равно нет ясности: в итоговой таблице появилось значение 21 - это понятно: было пропущено. Но почему два раза? А 23 должно бы повториться, но оно теперь только один раз.
Юрий М, простите, когда в сообщении это написано не видно, а когда в Экселевском файле смотришь - видно, что повторяющиеся числа 21 во втором столбце расположены на тех же строках, где и повторяющиеся числа 23 в первом столбце. Я так поняла, что в этом дело...
Юрий М написал: Даже если так, то куда делось второе значение 23? Ведь:
10 и 11 строка колонки А имели одинаковое значение, после перенумерации, эти строки должны так-же иметь одинаковое значение и неважно, какое именно это будет значение, главное, что-бы "предыдущая строка+1" В примере 00023 повторяется 2 раза подряд, а может быть и три и четыре, соответственно, должно стать три или четыре строки 00021 (на примере именно этого файла), а следующая строка, соответственно стать 00022 и т.д.
Юрий М написал: Newsky13 , 23 в первом столбце повторялись - почему они не повторяются во втором? Ведь это же Вы писали:
когда будут встречаться одинаковые значения, они так-же, дублируются столько-же раз, сколько их было= когда будут встречаться строки с одинаковыми значениями подряд, такие строки дублируются столько-же раз, сколько было строк с одинаковыми значениями изначально по формуле "значение предыдущей строки+1". "Более лучше" переформулировать не удаётся.