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

Страницы: 1 2 След.
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Дабы не плодить темы опять, кое-что спрошу тут, поскольку все по этой же задаче вопросы. Вопросы больше даже теоретические)

В чем суть, у меня запрос, который выгружает большой объем данных. Запрос формирует таблицу примерно из 60 строк, в каждой строке таблица (из 1 столбца), в которой около 3000 строк. Вот скриншот:
https://prnt.sc/rrh4af
И вот в таком виде, все работает отлично. И очень быстро, такой объем (в таком вот виде) он выгружает за 2-3 минуты максимум. Выгружает в таком виде в Excel.
https://prnt.sc/rrh5l6

НО, мне нужны сами данные из каждой таблицы, в идеале нужно сводить их в 1 таблицу. Именно это я спрашивал здесь и мне порекомендовали вот такой способ (спасибо Андрей VG).
Способ этот работает, все оке, НО очень муторно из-за Table.Combine, поскольку эта функция по сути создает новую таблицу в памяти с количеством строк 60*3000, способ занимает примерно минут 40-50 на данный объем данных (60 строк в каждой строке - таблица 1 столбец, 3000 строк), в зависимости от мощности компьютера. Table.ExpandTableColumn по сути делает тоже самое, да немного быстрее, но все равно очень медленно цифры по времени тоже около 40 минут.

Я попробовал другой вариант, каждую таблицу (на каждой из 60 строк) я привел в максимально комфортный и удобный мне вид, таким образом, чтобы потом их просто все вместе свести. Сведение сделал через простую функцию.
Код
Fun_ = (table, n) =>
        let
            Tab = 
            if n < r then Table.Join(table,{"DATE"},Tables_Total[List_Total]{n},{"DATE"})
            else
                table
            in
                if n = r-1 then Tab else @Fun_(Tab, n+1)

Думаю суть понятна, начиная с 1 строки столбца, где все мои таблицы, я их начинаю объединять каждый раз добавляя новую таблицу через переменную "n". На выходе получаю объединенную таблицу. И пока этот способ самый быстрый, минут за 20 он все делает. НО, хочется быстрее. Отсюда 2 вопроса

1) Как раз теоретический. Почему в ситуации, когда я не разворачиваю таблицы, а просто загружаю их в таком виде https://prnt.sc/rrh4af все грузится ну просто ахренеть как быстро, а стоит мне их каким-то образом разворачивать, выводить данные, объединять в 1, все начинает тупить. Ведь по сути, если я вывел эти таблицы в таком виде (как на скриншоте) они уже полностью заведены в память и значит разворот их или сведение в 1 не должно занимать много времени? Или я тут не прав.

2) Собственно все тот же вопрос. Как мне максимально быстро свести все данные в 1 таблицу (т.е. у меня есть столбец, в каждой строке которого еще таблица в 1 столбец, нужно просто все это объединить). Может есть какие-то еще варианты о которых я не знаю? Я просмотрел документацию по PQ, ответа не нашел. Пробовал функцию Table.FromColumns (ну т.е. сводил все столбцы в 1 таблицу) - по времени также как функция. Около 20 минут. Желательно бы быстрее(
Спасибо за помощь!
Изменено: dodge - 02.04.2020 15:38:37
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Нигде не написано, я без предъяв :D  Хорошо, что и так работает, но просто при использовании данного запроса, понял, что именно этот пункт сильно его утяжеляет и тормозит, вот думаю как его обойти.
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Коллеги, такой вопрос появился. Можно ли как-то заменить/есть ли аналоги функции Table.Combine - потому что когда происходит объединение таблиц с большим количеством строк, и собственно таблиц становится много, он их все сумирует, нереально при этом затормаживая процесс обработки.

Он не замещает одинаковые позиции в строках, а дублирует их. Вот например скрин из запроса.
https://i.ibb.co/vP9TZfQ/Screenshot-2.jpg
Можно ли сделать что-то вроде того, что я стрелками изобразил на скрине. Спасибо!
Изменено: dodge - 09.03.2020 19:29:49
Как выгрузить данные из одного запроса PQ в другой (обновляя их по отдельности)
 
Возможно немного каряво название написал, но по-другому хз как. Суть в чем. Есть 2 запроса. А и Б. Запрос А выгружает определенную информацию из интернета, создавая таблицу в КАЖДОЙ СТРОКЕ (таблицу большую).

Запрос Б ссылается на эти таблицы. Главный вопрос, при выгрузке из запроса А в запрос Б таблицы снова будут подгружаться из интернета (т.е. при выгрузке из А в Б, А снова обновиться?) Нужно чтобы весь процесс как бы был разделен на 2 части:

1) Выгрузка данных в запросе А
2) Их обработка в запросе Б.
Каким образом добавлять/накапливать данные в PQ?
 
А в целом вообще есть какие-то варианты не обновления полностью данных в PQ, а их добавления/накопления? Или обновления первых n строк ну или как-то так?
Изменено: dodge - 17.02.2020 12:58:52
Каким образом добавлять/накапливать данные в PQ?
 
Здравствуйте!

Подскажите, есть ли возможность как-то добавлять данные в PQ? Например есть определенная таблица в 5 значений (цифра в 5 для легкости объяснения). Я ее подгружаю в PQ. Через какое-то время это таблица обновляется. Она все также остается в 5 значений, но значения становятся актуальными. Как можно (и можно ли вообще) сделать добавление их в PQ. Более подробно в приложенном фаиле поясню Спасибо!
Изменено: dodge - 17.02.2020 13:35:40
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Андрей VG, abc1, огромное спасибо, все работает
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Сорян, старался объяснить нормально, но немного криво получилось. Андрей VG, все как у вас получилось и нужно, только еще чтобы общая таблица начиналась с 01.01.2020 и шла до 03.03.2020 (с шагом в 1 день).
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Каряво объяснил изначально. Вот подправил фаил. В нем есть запрос "Сводная", на который собираются таблицы из листов под номером 1....n. Нужно эти таблицы вывести в 1 таблицу с датами как на листе экселя "Общая". Думаю так понятнее.
Изменено: dodge - 13.02.2020 22:32:50
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Слияние функция не автоматическая. Т.е. там в ручную нужно вбивать 2 таблицы для слияния. Как сделать чтобы все автоматический свелось в 1 таблицу.  
Сведение данных с нескольких таблиц на одну в соответствии с датами в PQ
 
Такая вот задачка. Есть Листы продаж (лист 1 и лист 2), в них даты и количество продаж. Нужно все свести в таблицу 3, с нужными датами. В чем особенности:
На листе 1 и 2 частенько бывают повторы, а точнее не повторы, а именно дата встречается несколько раз например:

01.01.2020 - 5
01.01.2020 - 4

В таком случае нужно вывести в общую таблицу в дате 01.01.2020 - 9. Прикладываю фаилик с примером, думаю все понятно. Спасибо!

Еще важный нюанс, нужно все это сделать автоматический, в ручную в целом у меня получилось это через слияние, но это для каждого отдельного листа надо делать.
Обработка ошибки в PQ и вывод кода ошибки в результат
 
Максим Зеленский, спасибки, это кажется именно то, что нужно.
Изменено: dodge - 10.02.2020 14:14:16
Обработка ошибки в PQ и вывод кода ошибки в результат
 
Ну тогда логичный вопрос, а что эта конструкция считает ошибкой?) И нет ли еще какого аналога, который бы ЛЮБУЮ ошибку обрабатывал (ну хотя бы при правильном синтаксисе).
Изменено: dodge - 10.02.2020 13:13:51
Обработка ошибки в PQ и вывод кода ошибки в результат
 
Спрошу проще. Есть ли в PQ аналог ЕСЛИОШИБКА. Так, чтобы какая-то функция, если завершается с ошибкой не прерывала весь запрос, а например выводила какой-то другой результат. В ИДЕАЛЕ - выводила бы код этой ошибки.
Обработка ошибки в PQ и вывод кода ошибки в результат
 
Ок тогда вот такой пример:
Код
let
   S = try Web.Contents("123") otherwise "ОШИБКА"
in
  S

Синтаксис правильный, но очевидно что по адресу 123 функция ничего не получит. На выходе я должен получить S = "ОШИБКА" правильно?

Вот у меня PQ на такой код ругается:
DataSource.Error: Web.Contents не удалось получить содержимое из "http://0.0.0.123/"; (503): Service Unavailable
Сведения:
   DataSourceKind=Web
   DataSourcePath=http://0.0.0.123/
   Url=http://0.0.0.123/

А должен вроде как обработать и вывести мне результат S = "ОШИБКА", а еще лучше, что-то вроде S = "Ошибка, DataSource.Error: Web.Contents"
Изменено: dodge - 10.02.2020 13:09:51
Обработка ошибки в PQ и вывод кода ошибки в результат
 
Всем привет! Несколько вопросов, может мне кто-то объяснить как работает синтаксис try в PQ, не пойму либо я тупой либо одно из двух.

Пара вопросов:
1) Если я пишу
let
  S = try Web.Conte("https://www.planetaexcel.ru/forum/" otherwise "ОШИБКА"
In
  S

PQ должен вывести мне значение "ОШИБКА", потому что в S неправильно прописана функция, но ничего не выводит, а именно выскакивает ошибка, т.е. PQ нифига ее не обрабатывает. Я что-то не так делаю?
2) Есть ли функция вывода кода/значения ошибки? Ну т.е. если я использую какую-то функцию и она возвращает мне ошибку, что она обработала ее и вывела мне например код ошибки.
Изменено: dodge - 10.02.2020 12:59:48
Power Query ошибки при загрузке на листе (при просмотре ошибок нет)
 
Да, кстати, чтоб темы не плодить, такой вопрос, в PQ можно как-то скорость запроса или каких-то итераций в запросе смотреть\отображать?
Power Query ошибки при загрузке на листе (при просмотре ошибок нет)
 
Увы, но нет, также все рандомно выводит.
Power Query ошибки при загрузке на листе (при просмотре ошибок нет)
 
Задержка нужна.

Нету никакой ошибки по сути. При просмотре все нормально работает и выводит вот такой результат в PQ.

Жму выгрузить получаю это


Причем все рандомно. Жму еще раз, обновить данные. Получаю уже вот это.

И 2 ошибки вместо одной. Шляпа какая-то. При этом жму на "Изменить запрос" и в просмотре вижу корректные данные как на 1 картинке.
Изменено: dodge - 07.02.2020 17:57:56
Power Query ошибки при загрузке на листе (при просмотре ошибок нет)
 
Добрый день, ребят!

Такая вот проблема, есть запрос (достаточно мутный, с рекурсивной функцией). В одном из столбцов указанна такая формула:
Код
Pl1 = Table.AddColumn(Pl, "All", each List.Count(Function.InvokeAfter( ()=> Add(1, 0, [Reg Name]), #duration(0,0,0,1))

Add, и есть рекурсивная функция, все в предварительном просмотре отлично работает, но на лист ничего не выводит. В функцию передаются параметры из столбца [Reg Name]. Столбец "All" пустой и рисует ошибки. В чем мб проблема? Иногда выводит 1 значение в столбце, иногда 2, иногда ничего.  
Изменено: dodge - 07.02.2020 15:59:25
Обойти ошибку PQ / Уменьшить скорость запроса
 
Огромное спасибо, все помогло.
Обойти ошибку PQ / Уменьшить скорость запроса
 
Ребят!
Такой вопрос к знатокам PQ, можно ли как-то, где-то уменьшать скорость запросов, или выставлять параметр time-out, ну или что-то подобное? Объясню в чем трабл, делаю парс определенного сайта, все сделал и все работает, но часть запроса представляет собой цикл в каждой итерации которого отправляется запрос на сайт. Если в цикле 5-6 итераций, то все работает отлично, если больше срабатывает защита на сайте и выскакивает ошибка. Нужно как-то сделать так, чтобы уменьшить скорость работы PQ или поставить какой-то параметр, который бы делал перерыв между например 5 и 6 итерацией цикла. Можно ли это вообще в PQ сделать? Заранее спасибо.
Авторизация на сайте через Power Query
 
Почти успех. Увидеть данные как будто из-под авторизованного пользователя - удалось. Вот код. Теперь мб кто-то сможет подсказать, как это все работает? Это нужно постоянно авторизовываться или можно как-то "принять куки и пихать их", или нужно постоянно при каждом запросе так авторизовываться?
Скрытый текст
Изменено: dodge - 31.01.2020 15:08:05
Авторизация на сайте через Power Query
 
Все же надеюсь, как-то осилить этот вопрос. Методом проб и ошибок получилось авторизоваться через PQ, ну точнее как авторизоваться, получить json фаил с успешной авторизацией, и настройками. Вопрос что с ним делать дальше? Я так понимаю нужно как-то юзать теперь токен, для полученя данных. Опять же куки принять не знаю как. Все же надеюсь на коллективный разум)
Изменено: dodge - 31.01.2020 14:50:51
Авторизация на сайте через Power Query
 
Да, мне тут знакомый программист просто посоветовал авторизовываться на сайте и вручную куки в PQ пихать. Правда не знаю насколько это работает)
Изменено: dodge - 30.01.2020 09:46:30
Авторизация на сайте через Power Query
 
Ну мне хотя бы в общих чертах, я вот у вас темы с таким же вопрос видел. Как вы их решили? Хотя бы в целом направление верное (я про Web.Contents)?

Я анализировал систему авторизации на нужном сайте. Вроде все достаточно просто, отправляется обычный POST запрос с данными.
Изменено: dodge - 27.01.2020 14:25:22
Авторизация на сайте через Power Query
 
Очень надеюсь на какую-то информацию  :)  
Авторизация на сайте через Power Query
 
Всем привет!

Тема часто поднималась на форуме, но конкретики так и не нашел. Подскажите как реализовать, авторизацию на сайте. Авторизация происходит методом POST запроса с передачей параметров "логин и пароль", как это реализовать в PQ? Я искал информацию, так понял все нужно делать через опцию Content в функции Web.Content, в частности пробовал использовать код отсюда - https://issue.life/questions/50151940. Но как-то безуспешно.
Парсинг вложенных таблиц по темам
 
Спасибо, все работает, ваш способ в миллион раз лучше моего)
colNames = List.Distinct(List.Combine(List.Transform(#"Added Custom"[Пользовательский], each Table.ColumnNames(_))))
Вот до этой строки я никак не мог дойти(
Парсинг вложенных таблиц по темам
 
Здравствуйте!

Нужно сделать вот такую шляпу. В фаиле есть 3 листа.
1 лист (Ссылка) - тут список фильмов, с ссылками на каждую страницу фильма. На каждой странице фильма есть определенная таблица, вот в качестве примера она
http://prntscr.com/qpgg1k

Нужно по каждой ссылке вытащить всю информацию и вставить ее в соответствии с таблицей на листе "ЧТО нужно получить".
Поясню: по каждой ссылке, идет фильм, в нем есть Таблица (с Параметрами: жанр, режиссер и тд. и со значениями этих параметров), нужно все вместе это свести в 1 таблицу. Готового результата не прошу, скорее нужен совет в каком направлении двигаться. ГЛАВНАЯ СУТЬ в том, что по каждой ссылке (почти в каждом фильме) значения параметров РАЗНОЕ, ну т.е. в какой-то таблице (и каком-то фильме) например есть Параметр "Оператор:" в каком-то нет. т.е. Должен быть столбце "Оператор" и напротив какого-то фильма написано должно быть "Иван Иваныч Иванов", а там где такого параметра нет должно быть написано "Н/Д" ну или прочерк, это уже не важно.

Как это думал сделать (и в принципе сделал) я. Вытащил таблицу с параметрами и их значениями по каждой ссылке. Вытащил по каждой ссылке из соответствующей таблицы Список со всеми параметрами и значения в отдельные столбцы. Вот что получилось собственно.
http://prntscr.com/qpgll7

Потом написал рекурсивную функцию, которая пробегает по всем строкам и начиная с 1 и в определенном списке накапливает ВСЕ ВОЗМОЖНЫЕ варианты параметров. На выходе получил список в котором имею все варианты параметров. Теперь осталось добавить таблицы с названиями по этому списку, и проставить соответствующие значения.

Главная проблема - способ очень громоздкий и долгий. Учитывая что позиций с ссылками около 2к, комп грузиться на несколько часов. Можно как-то придумать все это проще?

Прикладываю фаил, в котором думаю понятно что нужно получить.
Изменено: dodge - 18.01.2020 16:17:08
Страницы: 1 2 След.
Наверх