Страницы: 1
RSS
Запрос Power Query на пустую таблицу
 

Всем доброго дня. Вопрос такой. Есть таблица, из которой PQ вытягивает данные. Таких таблиц несколько, итоговая добавлена в модель данных PP с выводом всего в итоговую сводную таблицу. Так вот, если таблица-источник не заполнена, то обрабатывающий её запрос вообще не выводит  столбец, в котором эти данные отображаются при их наличии. Как следствие - ругается итоговая сводная таблица. Как сделать, чтобы даже при нулевых значениях запрос не исключал этот столбец из своего результата и показывал столбец с нулевыми значениями? Спасибо.

 
В стиле "какой вопрос, такой ответ" - прикомбайнить пустую таблицу, содержащую все нужные заголовки
Тогда столбец будет "зарезервирован".
Изменено: Xel - 24.11.2020 15:15:38
 
Что такое "прикомбайнить"? Заголовки у столбцов не пустые, но без данных запрос их не хочет выводить. Пока вышел из положения вводом хотя-бы по одному нулю в каждый из пустых столбцов. Теперь столбцы не теряются.
 
Цитата
Difekon написал:
"прикомбайнить"?
аналог "СЦЕПИТЬ"
 
Так есть у кого-нибудь соображения по заданному вопросу? Наверняка решается всё очень просто, но найти не получается.
 
Цитата
Difekon написал:
Так есть у кого-нибудь соображения по заданному вопросу?
Конечно есть, и с вами этими соображениями поделились в той же мере, в какой вы задали вопрос.
Цитата
Difekon написал:
Наверняка решается всё очень просто
Решается элементарно, но только в том случае когда вопрошающий соблюдает правила форума, и не пожалеет 5-10 минут своего времени, чтобы прицепить к первому сообщению файл-пример, из которого видно что есть на входе и какой результат вы хотите получить на выходе. За вас файл делать никто не будет. Помощь ведь нужна вам, верно?
Без этого всего делиться приходится только соображениями в той терминологии, которая доступна отвечающим.
Вот горшок пустой, он предмет простой...
 
Цитата
adamm написал:
аналог "СЦЕПИТЬ"
Table.Combine
сцепить, но стопочкой. Но по косвенным признакам вероятнее, что правильный ответ "нормально загружать данные".
 

С критикой согласен. Выкладываю пример. Описание внутри.

 
У вас эти строки (уже не столбцы) удаляются на шаге "отмена сворачивания", там отбрасываются строки со значением null. Посмотрите запрос по шагам, до этого момента там все nullы таскаются туда-сюда и никуда не пропадают.

Спасет, если где-то выше в запросе поменять null на 0 (замена значений). На скриншоте.
Сделать на любом шаге до "отмена свертывания"   Надо сделать после второго транспонирования, когда "заполнить вниз" уже выполнено, но перед отменой свертывания  во всех нужных столбцах.

Возможно, проще в исходной нули ставить, как вы делаете, меньше клавиатура топчется.
Мой вариант добавлять таблицу с заголовками не поможет, т.к. у вас не столбцы пропадают, а строки и вопрос совсем не тот, что в исходном сообщении.

Если сводную делать через power pivot там можно табличку-календарик добавить и даты будут совсем все.

У меня excel2016 как-то странно к вашему файлу отнесся и не хочет обновлять сводную ни в какую, но, вроде, решение "с кнопок" и на скриншоте все понятно должно быть.
Изменено: Xel - 25.11.2020 13:00:15
 
Спасибо. Скорее всего так и сделаю. Была надежда, что где-то в настройках PQ есть возможность исключить исчезновение строк с NULLами, чтобы не добавлять новые строки в запрос.
 
Difekon, на кнопках такого нет. Но можно написать код чтобы через группировку разворачивать и строки с null не пропадали.
Вот горшок пустой, он предмет простой...
 
С кодом я не совсем дружен, через команды с панели работаю.
 
Еще довольно дурацкий, но зато полностью кнопочный вариант - таки добавить табличку "календарик" и "добавлением таблиц" его приделать к запросу. Тот самый Table.Combine

В сводной придется фильтровать пустые поля или не обращать на них внимания, в имеющейся настройке и не мешает особо.
Итоговая табличка запроса будет выглядеть довольно придурковато c хвостом.

Но зато месяцы будут все, которые надо, можно сразу на год вперед.
Изменено: Xel - 25.11.2020 13:52:04
 
в шаг "Другие столбцы с отмененным свертыванием"
замените строку на
Код
Table.TransformColumns(Table.UnpivotOtherColumns(Table.TransformColumns(#"Измененный тип1",{},(x) => Replacer.ReplaceValue(x,null,0)), {"Товарная категория|"}, "Атрибут", "Значение"),{},(x) => Replacer.ReplaceValue(x,0,null))
 
Всем спасибо за участие. Остановлюсь на замене значений. С кодом интересно, но пока не особо понятно, жаль нет альтернативы в кнопочном варианте.
 
может не до конца понял, но если нужно выводить столбец независимо от того есть ли он в физической таблице, то вот так
Код
Table.SelectColumns(#"Измененный тип",{"Столбец1", "Столбец2", "Столбец3","Ваша колонка 1"}, MissingField.UseNull)

где "Ваша колонка 1" - это столбец который нужно выводить в любом случае

Страницы: 1
Наверх