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

Страницы: 1 2 След.
Формула массива для сравнения дат
 
, Ваша формула не подойдет. Нужен именно БЛИЖАЙШИЙ к первому дню месяца понедельник. Ваша формула выдает выдает первый понедельник текущего месяца и не учитывает случаи, когда первый день месяца пришелся на понедельник. Но в общем-то суть вопроса заключалась больше в том, почему именно формула из файла-примера не работает.
Формула массива для сравнения дат
 
Добрый вечер, друзья. В файле примере на листе 2 есть список дат (начала месяцев). На листе 1 этот диапазон дат разбит по неделям. Мне необходимо к каждому началу месяца(лист2) подтянуть ближайшее начало недели с листа 1. Формулы на листе 2 прописаны, одна из них работает, другая - нет, хотя отличаются только диапазоном выборки ( в идеале нужно чтоб работало на всем диапазоне с листа 1). Где тут косяк? Почему одна формула работает нормально, а другая - нет?
Как поменять названия столбцов в PQ на названия соседних столбцов?
 
Михаил Л, Андрей VG, спасибо, работает.
Как поменять названия столбцов в PQ на названия соседних столбцов?
 
Михаил Л, возможно, я не слишком корректно выразился. Требуется поменять названия так, как показано на скрине
Как поменять названия столбцов в PQ на названия соседних столбцов?
 
Добрый день, форумчане.
Прошу помочь настроить автозамену названия столбца на название соседнего столбца. Файл с простейшим примером прикладываю.

UPD: итоговая таблица должна иметь следующий вид: Товар - Дата - Количество/Сумма - Значение. Сделать это через попу с большим количеством шагов я могу, но хотелось бы оптимального решения, ибо массив данных весьма большой.  
Изменено: Владимир Колотиев - 19.04.2021 18:42:52
Combiner ы power query
 
vikttur, а нормально объяснить, чем не устраивает название - не вариант?
Combiner ы power query
 
mechanix 85,
Цитата
mechanix 85 написал:
сделать четыре ReplaceValue не вариант?
вариант, но вряд ли это наиболее простой и рациональный способ.
ну и в любом случае хотелось бы узнать от знатоков, как работают combiner ы. Желательно с примерами
Combiner ы power query
 
Всем привет, есть столбец с номерами телефонов вида +7(999)999-99-99. Необходимо убрать плюсы, тире, скобки. как это сделать наиболее просто и рационально? Есть подозрение, что с помощью combiner'ов.
Функция для определения среднеквадратического значения в Power Query
 
Цитата
Андрей VG написал:
Можно и ещё короче
Ну если уж на то пошло, то можно и еще короче: среднеквадратическое отклонение множества N меньше стандартного отклонения множетства N в x раз (вне зависимости от значений множества). Поэтому можно просто значения функции List.StandardDeviation() разделить на x, предварительно вычислив значение х эмпирическим путем, при этом способ наиболее быстродействующий :)
Функция для определения среднеквадратического значения в Power Query
 
Цитата
PooHkrd написал:
Вот! Я про это же и подумал, откуда там взяться Цитата Владимир Колотиев  написал:огромную формулу в несколько шагов
Ну вот пост№3 от DrillPipe, как раз и есть большая формула на несколько шагов, я бы как раз решал таким образом, но в общем-то суть вопроса заключалась в том, если ли втроенная функция в pq. Ответ на этот вопрос я успешно получил :)
Функция для определения среднеквадратического значения в Power Query
 
В PQ есть функция List.StandardDeviation, но она рассчитывает именно стандартное отклонение, когда расчет производится по выборке из большого массива данных. Мне же нужно сделать расчет на основе конкретного числа элементов (среднеквадратическое отклонение), но функции подобной я не нашел. Писать огромную формулу в несколько шагов можно, но это будет долго работать.
Обращение к шагу из другого запроса PQ
 
Дмитрий(The_Prist) Щербаков,PooHkrd, спасибо, всё понял. Теперь такой вопрос: есть у меня в книге А таблица, к которой я подключаюсь из книги Б в двух разных запросах, ну и эти два запроса выводят на листы две таблички, при этом дважды обращаясь к источнику данных. Если же я в первом запросе создам метаданные на промежуточную таблицу, а потом во втором запросе вытащу ее, должен ли я выиграть на времени обработки обоих запросов? Проверил эмпирическим путем - не выиграл. То есть когда обращаюсь к метаданным, по большому счету просто избавляюсь от лишних строк кода, только и всего?
Обращение к шагу из другого запроса PQ
 
Всем привет. Такой вопрос: можно ли как-то из одного запроса обратиться к определенному шагу другого запроса, если да, то как?
Например есть заброс Б, из него я хочу обратиться к шагу N запроса А.
Замена значений по условию. Power Query, Замена значения в столбце по условию
 
[PooHkrd]Подскажите, как будет выглядеть код, если у меня условие по другому столбцу будет?
Изменено: Владимир Колотиев - 29.01.2021 17:19:02
Ссылка на умную таблицу из другой книги
 
Вопрос, возможно, глупый, но как сослаться из книги А на умную таблицу, расположенную в книге В, таким образом, чтоб при добавлении строчек в этой умной таблице в книге В, строчки автоматически добавлялись и в книге А? Я, конечно, могу в книге А проставить формулы, ссылающиеся на нужные ячейки таблицы книги В, но если в В добавляются данные, то придется протягивать ручками + постоянно следить, обновились ли данные в В.
Изменено: Владимир Колотиев - 28.01.2021 13:10:09
power query: Неожиданная ошибка: Оценка была отменена
 
Цитата
PooHkrd написал:
Он доступен, достаточно нажать кнопку "обновить" в редакторе запросов. Данная галка отключает обновление запросов именно в фоновом режиме
PooHkrd, это понятно, я не так выразился. И я так понимаю на отдельно взятые запросы такую галку установить нельзя? Либо на все, либо ни на что?
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
genosser, PooHkrd,
Цитата
genosser написал:
у меня  12-потоковый  , все равно 4 контейнера. Так что, если нельзя специально настроить их (контейнеров) количество, то не влияет
у меня 16 потоков, а контейнеров 7, правда впервые вижу, чтоб 7 контейнеров у меня было задействовано, раньше тоже только 4 было. Не понятно, от чего это зависит.
power query: Неожиданная ошибка: Оценка была отменена
 
Цитата
PooHkrd написал:
Это всего лишь последствие того, что у вас, скорее всего не отмечен чек-бокс, как на картинке в параметрах запроса.
PooHkrd, как-то для отдельно взятого запроса можно применить данный чек-бокс? А то у меня когда ставлю галочку, сразу во всех запросах предварительный просмотр недоступен, что бывает весьма неудобно
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
PooHkrd, вот тут https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=136763&a... создал новую тему.
Как избежать повторного обращения к источнику данных в запросе Power query?, использование функции Table.Buffer при работе с большими массивами данных
 
Всем привет! В процессе обработки запроса PQ происходит неоднократное обращение к источнику данных, а так как объем данных достаточно большой, то обработка запроса затягивается на десятки минут, а то и часы. Вопрос таков: как избежать повторного обращения к источнику данных, чтоб сократить время обработки запроса? Ниже привожу код конкретного запроса:
Код
let
    Источник = Folder.Files("X:\Отдел аналитики\Внутренние данные\Выгрузки\Месяц_Счет_Бренд\Корма для животных"),
    #"Отфильтрованные скрытые файлы" = Table.SelectRows(Источник, each [Attributes]?[Hidden]? <> true),
    #"Вызвать настраиваемую функцию" = Table.AddColumn(#"Отфильтрованные скрытые файлы", "Преобразовать файл из 2018", each #"Преобразовать файл из 2018"([Content])),
    #"Переименованные столбцы" = Table.RenameColumns(#"Вызвать настраиваемую функцию", {"Name", "Source.Name"}),
    #"Другие удаленные столбцы" = Table.SelectColumns(#"Переименованные столбцы", {"Source.Name", "Преобразовать файл из 2018"}),
    #"Замененное значение" = Table.ReplaceValue(#"Другие удаленные столбцы",".xlsx","",Replacer.ReplaceText,{"Source.Name"}),
    #"Проанализированная дата" = Table.TransformColumns(#"Замененное значение",{{"Source.Name", each Date.From(DateTimeZone.From(_)), type date}}),
    #"Переименованные столбцы1" = Table.RenameColumns(#"Проанализированная дата",{{"Source.Name", "Дата"}}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Переименованные столбцы1", each [Дата] >= НовыйПериодС and [Дата] <= НовыйПериодПо),
    #"Развернутый элемент Преобразовать файл из 2018" = Table.ExpandTableColumn(#"Строки с примененным фильтром", "Преобразовать файл из 2018", {"Счет", "Категория", "Группа", "Подгруппа", "Бренд", "ТО"}, {"Счет", "Категория", "Группа", "Подгруппа", "Бренд", "ТО"}),
    #"Строки с примененным фильтром1" = Table.SelectRows(#"Развернутый элемент Преобразовать файл из 2018", each [ТО] <> null and [ТО] <> "" and [ТО] > 0),
    #"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром1", {"Счет", "Группа", "Подгруппа", "Бренд"}, {{"ТО", each List.Sum([ТО]), type number}}),
    #"Объединенные запросы" = Table.NestedJoin(#"Сгруппированные строки",{"Группа", "Подгруппа"},ОтборБренда,{"Группа", "Подгруппа"},"ОтборБренда",JoinKind.LeftOuter),
    #"Развернутый элемент ОтборБренда" = Table.ExpandTableColumn(#"Объединенные запросы", "ОтборБренда", {"Подгруппа"}, {"ОтборБренда.Подгруппа"}),
    #"Строки с примененным фильтром2" = Table.SelectRows(#"Развернутый элемент ОтборБренда", each [ОтборБренда.Подгруппа] <> null and [ОтборБренда.Подгруппа] <> ""),
    #"Объединенные запросы1" = Table.NestedJoin(#"Строки с примененным фильтром2",{"Группа", "Подгруппа", "Бренд"},ОтборБренда,{"Группа", "Подгруппа", "Бренд"},"ОтборБренда",JoinKind.LeftOuter),
    #"Развернутый элемент ОтборБренда1" = Table.ExpandTableColumn(#"Объединенные запросы1", "ОтборБренда", {"Бренд"}, {"Бренд отбора"}),
    #"Условный столбец добавлен" = Table.AddColumn(#"Развернутый элемент ОтборБренда1", "Пользовательская", each if [Бренд отбора] = null then "Прочие бренды" else "Бренд отбора"),
    #"Сгруппированные строки1" = Table.Group(#"Условный столбец добавлен", {"Счет", "Пользовательская"}, {{"ТО", each List.Sum([ТО]), type number}}),
    #"Сведенный столбец" = Table.Pivot(#"Сгруппированные строки1", List.Distinct(#"Сгруппированные строки1"[Пользовательская]), "Пользовательская", "ТО", List.Sum),
    #"Условный столбец добавлен1" = Table.AddColumn(#"Сведенный столбец", "Категория покупателя", 
    each if [Бренд отбора] = null then "Не покупал бренд"
    else if [Прочие бренды] = null or [Бренд отбора]/([Бренд отбора]+[Прочие бренды]) >= ПроцентЛояльности then "Лояльный покупатель"
    else "Нелояльный покупатель"),
    #"Переименованные столбцы2" = Table.RenameColumns(#"Условный столбец добавлен1",{{"Прочие бренды", "Прочие бренды (новый)"}, {"Бренд отбора", "Бренд отбора (новый)"}, {"Категория покупателя", "Новый период"}})
in
    #"Переименованные столбцы2"

При обработке данного запроса обращение к источнику происходит 2 раза.
Образец файла источника данных также прикрепляю. При вызове настраиваемой функции (строка 4 кода) происходит лишь косметическое преобразование файла(удаление лишних строк, заголовки и тд)
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
PooHkrd, В общем, после всего обсуждения по кэшированию у меня вытекает финальный вопрос к вам, как к знатоку: как быть, если у меня есть большой объем данных (папка с xlsx файлами с историей продаж за каждый месяц за последние 3 года, в каждом файле порядка 300к строк), я подключаюсь к этому объему данных, затем провожу разные манипуляции в виде джойнов небольших кусочков данных из других маленьких таблиц. И вот тут начинается трэш, потому что по несколько раз идет обращение к источнику данных(та большая папка с файлами продаж), всё затягивается на десятки минут, при этом параллельно что-то делать на компе не получается, ибо весь ресурс процессора задействован (смотрел через диспетчер). Буферизация тут не поможет точно, так как слишком уж большой объем данных, но мириться с ситуацией не очень хочется. Можете что-то посоветовать, есть ли выход?
Так уж получилось, что в компании сейчас используют Excel + PQ как основной инструмент для анализа данных, планируют переходить на пайтон, но это только планы, а работу делать необходимо сейчас.
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
Понял, спасибо!
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
Цитата
PooHkrd написал: Хранение в памяти промежуточных результатов производится до момента завершения вывода итога запроса в выбранный вами формат (таблица, кэш сводной, модель данных) Как только выгрузка завершается - память высвобождается.
PooHkrd, а если я запрос A1 никуда не вывожу, а использую в дальнейшем в другом запросе B1(который выводится на лист), при этом в А1 на одном из шагов создаю буфер, который будет использован в пределах этого же запроса. Тогда кэш освободиться после выполнения А1 или после вывода на лист B1?
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
Цитата
PooHkrd написал:
Ого, откуда такое откровение? Или вы про независимые друг от друга запросы?
PooHkrd, https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=95054&am... вот тут пост №10, Максим Зеленский говорил, что запросы обновляются в "какой-то последовательности", но здесь скорее всего имелось в виду использование костыля в виде предварительной выгрузки какого-либо запроса на лист(своеобразный кэш). Хотя и в отношении обычной цепочки запросов это утверждение может быть справедливо, начать обновляться первым может и финальный запрос, выводящий данные на лист, но вот завершить обработку он не сможет, так как нужен результат предпоследнего запроса и тд.
Изменено: Владимир Колотиев - 26.01.2021 16:22:52
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
Цитата
PooHkrd написал:
Если данный код это отдельный запрос, то его финальный результат помещается в память и к нему можно обращаться по имени запроса из остальных
PooHkrd, а до каких пор результат запроса будет храниться в буфере? Просто у меня есть несколько запросов, которые хотелось бы кинуть в буфер, но как я понимаю, их суммарный вес не должен превышать 1ГБ? Я не могу кэшировать как-то поочередно, потому как механизм PQ предполагает РАНДОМНЫЙ порядок обновления запросов, т.е. я не могу знать, когда можно буфер освободить, а когда еще нет?
Power Query M - Замена значений в таблице по условиям из другой таблицы.
 
PooHkrd, вот эти конструкции не понятны
Код
(x)=>x,"merged")

GroupedRows = Table.Group(MergedOldNew, {"Unique_Key"}, {{"tab", each 
        let a = Table.Group(_, {"Unique_Key", "Column_to_Replace"}, {"merged", each [merged]}) 
        in  Table.FromRows({ {a[Unique_Key]{0}} & a[merged] }, {"repUnique_Key"} & List.Transform( a[Column_to_Replace], each "rep"&_) ), type table}}),
Power Query M - Замена значений в таблице по условиям из другой таблицы.
 
PooHkrd, изящно, но много незнакомых приемов, связанных с синтаксисом языка М, подскажите, где можно подробнее почитать, буду признателен
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
PooHkrd,
Цитата
PooHkrd написал: ...файл представляет собой... zip-архив.  
Ага, спасибо)

Цитата
PooHkrd написал:...остальная память этих контейнеров также используется для проведения расчетов.
Получается, если я все контейнеры займу кэшем из файлов, то обрабатываться запрос будет бесконечно? + Ресурс компьютера в виде ОЗУ снижается до 1ГБ? Будь у меня 32ГБ оперативы или 2ГБ, ситуация не поменяется?
Power Query Как зависит производительность при Table.Buffer, List.Buffer
 
PooHkrd,
Цитата
PooHkrd написал:
Вот у них есть ограничения один процесс максимум 256 Мб, и одновременно может работать не более 4 процессов. Соответственно если вы напихаете в них данных больше чем на 1 Гиг, то все что сверху PQ начнет кэшировать на жесткий диск.
Подскажите, я пытаюсь закинуть в буфер данные из нескольких файлов, общий вес которых около 80МБ. Но при этом открывая диспетчер задач, я вижу что все 4 контейнера полностью заполнены, как такое возможно? Может эксель в файле xlsx данные сжимает, а когда я с ними работаю в power query они становятся больше?
PQ. Есть ли возможность размещать часто используемые таблицы в оперативку чтобы PQ не читал постоянно данные с жесткого диска?, Power Query
 
PooHkrd, прочитал пост №42. Я работаю по дефолту в режиме усеченного массива данных(1к строк), но при этом обращение к источнику длится очень и очень долго (в источнике порядка полумиллиона строк). Из Ваших слов следует, что буфер мне помочь не может никак, а наоборот усугубить ситуацию? При всём при этом вычислительные мощности ПК очень серьезные.

Еще один вопрос возник в процессе работы. У меня есть таблица, выгруженная из запроса. Мне на основе этой таблицы нужно сделать новый запрос, немного его преобразовать, выгрузить на лист (для внесения пользователями данных). После чего заджойнить вторую таблицу и первую. И вот тут вопрос: в каком порядке эти запросы обновятся, если нажать "обновить всё"? Сначала первый, затем второй и уже в конце третий? Или нужно вручную обновлять их в нужной последовательности?
Страницы: 1 2 След.
Наверх