Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Сортировка значений по нескольким колонкам с сохранением предыдущей сортировки в редакторе Power Query
 
Цитата
Андрей VG написал:
Андрей VG
Андрей, я изначально сделала запрос на объединение файлов

(filename)=>
let
   Источник = Excel.Workbook(File.Contents(filename), null, true),
   Лист2 = Источник{[Name="Лист1"]}[Data],
   #"Повышенные заголовки" = Table.PromoteHeaders(Лист2, [PromoteAllScalars=true]),
   #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Тема предложения", type text}, {"Предложение", type text}, {"Код сессии", Int64.Type}, {"CONTRAGENTID", Int64.Type}, {"BUSINESSPARTNERID", type number}, {"ФИО", type text}, {"ИНН", type number}, {"Оператор", type text}, {"Начало", type datetime}, {"Окончание", type datetime}, {"Телефон", type number}, {"Статус", type text}, {"Перезвонить", type text}, {"Придет", type date}, {"ТОБО", type text}, {"Замечание", type text}})
in
   #"Измененный тип"

Затем я сделала запрос на импорт файлов из книги. и уже в этом запросе мне необходимо сортировать по дате, оператору и времени

let
   Источник = Folder.Files("M:\307030\Telemarketing\Дашборд\Исходник"),
   #"Добавлен пользовательский объект" = Table.AddColumn(Источник, "Пользовательская", each getData([Folder Path]&[Name])),
   #"Удаленные столбцы" = Table.RemoveColumns(#"Добавлен пользовательский объект",{"Content", "Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
   Source = Table.ExpandTableColumn(#"Удаленные столбцы", "Пользовательская", {"Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание"}, {"Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание"}),
   appendShift = Table.FromColumns(Table.ToColumns(Source) & {{0.85060185185185178} & List.RemoveLastN(Source[Окончание], 1)}),
   #"Переименованные столбцы" = Table.RenameColumns(appendShift,{{"Column1", "Тема предложения"}, {"Column2", "Предложение"}, {"Column3", "Код сессии"}, {"Column4", "CONTRAGENTID"}, {"Column5", "BUSINESSPARTNERID"}, {"Column6", "ФИО"}, {"Column7", "ИНН"}, {"Column8", "Оператор"}, {"Column9", "Начало"}, {"Column10", "Окончание"}, {"Column11", "Телефон"}, {"Column12", "Статус"}, {"Column13", "Перезвонить"}, {"Column14", "Придет"}, {"Column15", "ТОБО"}, {"Column16", "Замечание"}, {"Column17", "Пользовательская"}}),
   #"Дублированный столбец" = Table.DuplicateColumn(#"Переименованные столбцы", "Начало", "Копия Начало"),
   #"Извлеченная дата" = Table.TransformColumns(#"Дублированный столбец",{{"Копия Начало", DateTime.Date, type date}}),
   #"Переименованные столбцы1" = Table.RenameColumns(#"Извлеченная дата",{{"Копия Начало", "Дата"}}),
   #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Переименованные столбцы1",{"Дата", "Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание", "Пользовательская"}),
   #"Дублированный столбец1" = Table.DuplicateColumn(#"Переупорядоченные столбцы", "Дата", "Копия Дата"),
   #"Извлеченное название месяца" = Table.TransformColumns(#"Дублированный столбец1", {{"Копия Дата", each Date.MonthName(_), type text}}),
   #"Переименованные столбцы2" = Table.RenameColumns(#"Извлеченное название месяца",{{"Копия Дата", "Месяц"}}),
   #"Переупорядоченные столбцы1" = Table.ReorderColumns(#"Переименованные столбцы2",{"Месяц", "Дата", "Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание", "Пользовательская"}),
   #"Дублированный столбец2" = Table.DuplicateColumn(#"Переупорядоченные столбцы1", "Дата", "Копия Дата"),
   #"Извлеченный год" = Table.TransformColumns(#"Дублированный столбец2",{{"Копия Дата", Date.Year, Int64.Type}}),
   #"Переименованные столбцы3" = Table.RenameColumns(#"Извлеченный год",{{"Копия Дата", "Год"}}),
   #"Переупорядоченные столбцы2" = Table.ReorderColumns(#"Переименованные столбцы3",{"Год", "Месяц", "Дата", "Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание", "Пользовательская"}),
   #"Измененный тип" = Table.TransformColumnTypes(#"Переупорядоченные столбцы2",{{"Начало", type time}, {"Окончание", type time}, {"Пользовательская", type time}}),
   #"Добавлен пользовательский объект1" = Table.AddColumn(#"Измененный тип", "Пользовательская.1", each (if[Начало]>[Пользовательская] then [Начало]-[Пользовательская] else null)),
   #"Разделить столбец по разделителю" = Table.SplitColumn(Table.TransformColumnTypes(#"Добавлен пользовательский объект1", {{"Пользовательская.1", type text}}, "ru-RU"), "Пользовательская.1", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Пользовательская.1.1", "Пользовательская.1.2", "Пользовательская.1.3"}),
   #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Пользовательская.1.1", type time}, {"Пользовательская.1.2", type text}, {"Пользовательская.1.3", type text}}),
   #"Удаленные столбцы1" = Table.RemoveColumns(#"Измененный тип1",{"Пользовательская.1.2", "Пользовательская.1.3"}),
   #"Замененное значение" = Table.ReplaceValue(#"Удаленные столбцы1",null,#time(0, 0, 0),Replacer.ReplaceValue,{"Пользовательская.1.1"}),
   #"Переименованные столбцы4" = Table.RenameColumns(#"Замененное значение",{{"Пользовательская.1.1", "Время перехода"}}),
   #"Переупорядоченные столбцы3" = Table.ReorderColumns(#"Переименованные столбцы4",{"Год", "Месяц", "Дата", "Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Время перехода", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание", "Пользовательская"}),
   #"Добавлен пользовательский объект2" = Table.AddColumn(#"Переупорядоченные столбцы3", "Длительность", each [Окончание]-[Начало]),
   #"Разделить столбец по разделителю1" = Table.SplitColumn(Table.TransformColumnTypes(#"Добавлен пользовательский объект2", {{"Длительность", type text}}, "ru-RU"), "Длительность", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Длительность.1", "Длительность.2", "Длительность.3"}),
   #"Измененный тип2" = Table.TransformColumnTypes(#"Разделить столбец по разделителю1",{{"Длительность.1", type time}, {"Длительность.2", type text}, {"Длительность.3", type text}}),
   #"Удаленные столбцы2" = Table.RemoveColumns(#"Измененный тип2",{"Длительность.2", "Длительность.3"}),
   #"Переименованные столбцы5" = Table.RenameColumns(#"Удаленные столбцы2",{{"Длительность.1", "Длительность"}}),
   #"Переупорядоченные столбцы4" = Table.ReorderColumns(#"Переименованные столбцы5",{"Год", "Месяц", "Дата", "Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Длительность", "Время перехода", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание", "Пользовательская"}),
   #"Условный столбец добавлен" = Table.AddColumn(#"Переупорядоченные столбцы4", "Кол-во звонков", each if [Начало] = [Начало] then 1 else null),
   #"Условный столбец добавлен1" = Table.AddColumn(#"Условный столбец добавлен", "Кол-во дозвонов", each if Text.Contains([Статус], "Актуальный") then 1 else if Text.Contains([Статус], "Не определился") then 1 else if Text.Contains([Статус], "Отказался") then 1 else if Text.Contains([Статус], "Перезвонить позже") then 1 else if Text.Contains([Статус], "Согласился") then 1 else 0),
   #"Условный столбец добавлен2" = Table.AddColumn(#"Условный столбец добавлен1", "Кол-во попыток", each if Text.Contains([Статус], "Не звонить по этой теме") then 1 else if Text.Contains([Статус], "Не принадлежит") then 1 else if Text.Contains([Статус], "Не удалось дозвониться") then 1 else if Text.Contains([Статус], "Недоступен") then 1 else 0),
   #"Условный столбец добавлен3" = Table.AddColumn(#"Условный столбец добавлен2", "Длительность дозвонов", each if [#"Кол-во дозвонов"] = 1 then [Длительность] else null),
   #"Измененный тип3" = Table.TransformColumnTypes(#"Условный столбец добавлен3",{{"Длительность дозвонов", type time}}),
   #"Условный столбец добавлен4" = Table.AddColumn(#"Измененный тип3", "Длительность попыток", each if [#"Кол-во попыток"] = 1 then [Длительность] else null),
   #"Измененный тип4" = Table.TransformColumnTypes(#"Условный столбец добавлен4",{{"Длительность попыток", type time}}),
   #"Переупорядоченные столбцы5" = Table.ReorderColumns(#"Измененный тип4",{"Год", "Месяц", "Дата", "Тема предложения", "Предложение", "Код сессии", "CONTRAGENTID", "BUSINESSPARTNERID", "ФИО", "ИНН", "Оператор", "Начало", "Окончание", "Длительность", "Время перехода", "Кол-во дозвонов", "Длительность дозвонов", "Кол-во попыток", "Длительность попыток", "Телефон", "Статус", "Перезвонить", "Придет", "ТОБО", "Замечание", "Пользовательская", "Кол-во звонков"}),
   #"Сортированные строки" = Table.Sort(#"Переупорядоченные столбцы5",{{"Дата", Order.Ascending}, {"Оператор", Order.Ascending}, {"Начало", Order.Ascending}}),
   #"Измененный тип5" = Table.TransformColumnTypes(#"Сортированные строки",{{"Кол-во дозвонов", Int64.Type}, {"Кол-во попыток", Int64.Type}, {"Кол-во звонков", Int64.Type}})
in
   #"Измененный тип5"
Сортировка значений по нескольким колонкам с сохранением предыдущей сортировки в редакторе Power Query
 
Цитата
Андрей VG написал:
В таком случае требуется пример - доказательство. Некий запрос, загружающий несколько файлов после загрузки которых сортировка выполняется в запросе Power Query правильно. И несколько файлов, добавление которых в загрузку приводит к нарушению сортировки.
Сортировка значений по нескольким колонкам с сохранением предыдущей сортировки в редакторе Power Query
 
Цитата
Андрей VG написал:
В таком случае требуется пример - доказательство. Некий запрос, загружающий несколько файлов после загрузки которых сортировка выполняется в запросе Power Query правильно. И несколько файлов, добавление которых в загрузку приводит к нарушению сортировки.
Изменено: Яна Брюханова - 03.08.2020 16:09:11
Сортировка значений по нескольким колонкам с сохранением предыдущей сортировки в редакторе Power Query
 
Цитата
vlad000 написал:
А у Вас так не работает?
пробовала, но после того как подгружаю новые файлы, эта фильтрация слетает
Сортировка значений по нескольким колонкам с сохранением предыдущей сортировки в редакторе Power Query
 
Добрый день!
Есть постоянно обновляемая таблица с большим количеством значений. Необходимо в Power Query настроить сортировку трех колонок (Дата, Оператор, Время) таким образом, чтоб они были взаимосвязаны (т.е изначально данные сортируются по Дате, затем отсортированные данные сортируются по Оператору, и затем по Времени) и при добавлении новых исходных данных сортировка не сбивалась.
Подскажите, пожалуйста, как это сделать?
Изменено: Яна Брюханова - 03.08.2020 14:23:05
В редакторе Power Query необходимо добавить столбец cо ссылкой на ячейку
 
Цитата
Михаил Л написал:
Хватит мурыжить, давайте файл-пример
мне надо понимать как именно это сделать.  
В редакторе Power Query необходимо добавить столбец cо ссылкой на ячейку
 
Цитата
buchlotnik написал:
а у меня как?
прошу прощение за мою невнимательность! подскажите, пожалуйста, как Вы это сделали?
В редакторе Power Query необходимо добавить столбец cо ссылкой на ячейку
 
buchlotnik, к сожалению, не так! Необходимо [Начало]{2}-[Окончание]{1}
В редакторе Power Query необходимо добавить столбец cо ссылкой на ячейку
 
В редакторе Power Query необходимо добавить столбец со следующим логическим вычислением:
если ячейка 2 поля Начало > ячейки 1 поля Окончание, то ячейка 2 поля Начало - ячейка 1 поля Окончание, если нет, то выводить значение 0.
PQ Ошибка OLE DB или ODBC: ключу не соответствует ни одна строка таблицы
 
Цитата
Цитата
спасибо большое! Вы помогли  8)
на самом деле была проблема с доступом к сетевому диску.  
Изменено: Яна Брюханова - 02.07.2020 15:21:43
PQ Ошибка OLE DB или ODBC: ключу не соответствует ни одна строка таблицы
 
Цитата
sokol92 написал:
А о каких источниках данных идет речь (текстовые файлы, файлы Excel, SQL базы, интернет)?
файлы Excel. Эти файлы тоже хранятся на сетевом диске
Изменено: Яна Брюханова - 02.07.2020 14:46:40
PQ Ошибка OLE DB или ODBC: ключу не соответствует ни одна строка таблицы
 
Цитата
sokol92 написал:
Источник данных OLE DB (или ODBC) существует на Вашем компьютере и не существует на том компьютере, на котором выдается ошибка из #1.
подскажите, пожалуйста,  как исправить это?
PQ Ошибка OLE DB или ODBC: ключу не соответствует ни одна строка таблицы
 
Всем привет!
Создала файл с PQ у себя на компе. Скинула его на сетевой диск организации, для совместного использования. И вот в чем проблема: при попытке обновить данные другим человеком отображается ошибка "В Excel не удалось обновить таблицу "Исход" из подключения "Запрос - Исход". Получено сообщение из источника внешних данных...." (скрин прикрепляю). Однако, если я захожу в этот файл и обновляю данные, то все ОК!
Подскажите, пожалуйста, как исправить данную ситуацию?
Страницы: 1
Наверх