Страницы: 1
RSS
Сортировка огромной таблицы и добавление + удаление лишних строк, Необходимо удалить и добавить новые строки в таблицу
 
Добрый день форумчане! Можете помочь разбить таблицу и удалить лишние строки. Сам, я понимаю, что это наверняка можно сделать, просто не представляю как автоматизировать, вручную будет очень долго... Там 18 тыс строк и очень много товаров, название товаров сходятся, только как их так отсортировать по дате, чтобы оставить самую старую и самую новую, а между разными товарами вставить пустую строку? Должен быть какой-то алгоритм, я в экселе не особо профи, может кто подскажить, что можно посмотреть или почитать? Как это практически сделать? Зарание благодарю за помощь!
 
Leto123, Добрый день!
Файл с примером приложите "что есть" -> "как надо".
 
Leto123, выложите тоже самое только в формате Excel
 
Вот, пример таблицы, всю не могу скинуть к сожалению... можно что-то с этим сделать?) научиться бы ...
 
А если так простой сортировкой по двум параметрам?
 
jakim, простой сортировкой не вариант я уже по названию товара и дате отсортировал, теперь именно надо придумать алгоритм который удалить все лишнее и добавит между разными номенклуатурами пустые строки...

В ручну, я наверное часов 5-6 буду это клепать, если не больше( вроде бы просто, монотонная работа, но как объяснить это компьютеру... вот незадача...
 
А как понять "Удалит всё лишнее"?
 
jakim, вверху писал, нужна только самая старая и самая новая даты, все остальное удалять... по товару из одной номенклатуры(название)...
 
PQ
но без пустых строк
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    date = Table.TransformColumnTypes(Источник,{{"Дата накладной", type date}}),
    min_max = Table.Group(date, "Наименование товар", {{"min", each Table.Min(_, "Дата накладной")},{"max", each Table.Max(_, "Дата накладной")}}),
    unpivot = Table.UnpivotOtherColumns(min_max, {"Наименование товар"}, "Атрибут", "Значение"),
    out = Table.FromRecords(unpivot[Значение]),
    type_date = Table.TransformColumnTypes(out,{{"Дата накладной", type date}})
in
    type_date
 
Можно вот так
 
И чтобы добавить пустые строки добавьте в код из #10 перед  End Sub:
Код
For lr = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
  If Cells(lr, 1).Value <> Cells(lr - 1, 1).Value Then
     Rows(lr).Insert Shift:=xlDown
  End If
Next lr
:)  
 
Большое спасибо!
Даже интересно стало... Синтаксис интересный, надо будет посмотреть эту тему, Power Query и язык М. А можете посоветовать какой-то хороший курс или книгу по этой технологии, как в них разобраться?
Изменено: Leto123 - 03.04.2020 12:47:10
Страницы: 1
Наверх