Страницы: 1
RSS
Удаление дубликатов по нескольким признакам в PQ
 
Добрый день

Поставили задачу, решение которой мне пока не известно.
Нужно
1) По столбцу А определить повторяющиеся значения (выделил желтым цветом)
2) В столбце К (№ Спецификации), если данные разные, то выделить последние 8 символов (это дата создания спецификации) и удалить строку с ранней датой
3) если же в столбце К данные идентичны (27-28 строки), то нужно проделать работу второго пункта, только уже для столбца L.
В конце я должен получить файл с уникальными значениями в столбце А (смотреть лист "результат").

Возможно ли эту работу проделать в PQ, чтоб иметь возможность одним кликом "обновить" решить задачу?
 
Цитата
adike написал: выделить последние 8 символов
ИМХО, только макросом или вручную.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, а если дата спецификации и дата конкурса будут в отдельных столбцах в начальной выгрузке? есть возможность менять под себя выгружаемый файл.
 
adike, а почему в листе результат осталась строка именно с параметром K/16748/14/12/18 а не SK/15211/06/11/18 (имеется в виду КРОМКА 4713-1184А КОВШ ПОГРУЗЧИКА)? По какому принципу удалять дубликаты?
 
kord, 14/12/18 и 06/11/18 это даты создания спецификации или конкурса. последняя, то есть, поздняя дата актуальная, а старая должна удалиться.
 
adike, с 3 пунктом проблема, было б легче без него :)
пока думаю
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Доброе время суток
Цитата
Александр написал:
с 3 пунктом проблема
А в чём собственно вы видите проблему?
Вариант решения.
 
Цитата
Андрей VG написал:
А в чём собственно вы видите проблему?
забыл запятую поставить, а так да, именно так и решал :)
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Вроде так:
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Исходная"]}[Content],
    TCN = List.Buffer(Table.ColumnNames(Source)),
    AddedCustom1 = Table.AddColumn(Source, "Дата Спецификации", each try Date.From(Text.End([#"№ Спецификации"],8),"ru-RU") otherwise null, type date),
    AddedCustom2 = Table.AddColumn(AddedCustom1, "Дата Конкурса", each try Date.From(Text.End([#"№ Конкурса"],8),"ru-RU") otherwise null, type date),
    GroupedRows = Table.Group(AddedCustom2, {"Заявка"}, {{"tmp", each Table.Max(_, {"Дата Спецификации", "Дата Конкурса"}), type record}}),
    RemovedColumns = Table.RemoveColumns(GroupedRows,{"Заявка"}),
    Expanded = Table.ExpandRecordColumn(RemovedColumns, "tmp", TCN)
in
    Expanded
F1 творит чудеса
 
Большое спасибо. работает! осталось разобраться и повторить.
Страницы: 1
Наверх