добавление новых столбцов в редакторе запросов из таблицы - PullRequest
0 голосов
/ 06 июня 2018

Я новичок в разделе PowerBI, и мне нужна помощь.

До сих пор я занимался слиянием запросов из двух таблиц, и теперь у меня есть одна таблица с новым заголовком "ROUTE DATA" (как врисунок ниже)

и в каждой строке есть таблица (я открыл одну из таблиц, как вы можете видеть на картинке)

, поэтому я не знаю, как создать новый coulmns для каждого идентификаторадля каждой строки в таблице.как вы можете видеть на фотографиях (красные ячейки, которые я добавил).

enter image description here надеюсь, что вы можете помочь мне с этим.

Спасибо, Даниэль.

РЕДАКТИРОВАТЬ ВОСКРЕСЕНИЕ 6/10/18: @Marc Pincince Marc большое спасибо !!так что проблема сейчас в ячейках с нулевым значением: мой комментарий к вашему сообщению: (Здравствуйте, Марк. Еще раз спасибо! поэтому я попытался следовать вашим инструкциям, и последний не работает так хорошо. Я добавлю картинку, чтобы показать вам, чточто-то не так, но я не могу добавить сюда картинки, поэтому я добавлю их в основной пост, извините за беспокойство. Проблема в том, что все пустые ячейки. Могу ли я удалить их и получить только данные? image.ibb.co/cHncHo/Capture.png и image.ibb.co/c4prco/Capture1.png)

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

--- Сначала появляется первоначальный ответ, затем обновленная версия, основанная на обсуждении ---

Вот возможный подход ...

Начиная с этого: enter image description here

Сделайте то, что предложил @Alexis: щелкните значок развертывания в правом верхнем углу столбца ROUTE DATA и выберите развертывание всех столбцов( Выберите все столбцы ) и нажмите кнопку ОК:

enter image description here

Да, вы увидите все четыре строки развернутыми:

enter image description here

Теперь выберите столбцы ROUTE NAME, START TIME и COMPLETE TIME, затем нажмите вкладку Transform , затем Стрелка раскрывающегося списка «Отключить столбцы» и Отключить только выбранные столбцы :

enter image description here

Вы увидите что-то вроде этого:

enter image description here

Теперь добавьте столбец индекса, нажав вкладку Добавить столбец и Столбец индекса .Индекс должен начинаться с нуля и выглядеть следующим образом.

enter image description here

Теперь добавьте модуль.Это можно сделать, выбрав столбец индекса и перейдя на вкладку Добавить столбец , затем Стандарт , затем По модулю , затем введите 3 и нажмите кнопку ОК.

enter image description here

Вы должны увидеть что-то вроде этого:

enter image description here

Сейчасдобавьте пользовательский столбец, щелкнув вкладку Добавить столбец , а затем Пользовательский столбец ;просто сохраните имя столбца как Custom, введите [Attribute] & " " & Text.From(([Index]-[Modulo])/3) в поле формулы и нажмите OK.Это создает уникальные имена столбцов, которые вам понадобятся для новых столбцов в данный момент:

enter image description here

enter image description here

И удалите столбцы Attribute, Index и Modulo, выделив их все, затем вкладку Home , а затем Remove Columns .

enter image description here

enter image description here

Теперь выберите столбец Custom, затем перейдите на вкладку Transform и затем PivotСтолбец :

enter image description here

И затем выберите Значение для записи Столбец значений , нажмите Дополнительные параметры , а затем стрелку раскрывающегося списка , чтобы выбрать Не объединять , и нажмите кнопку ОК.Вы должны увидеть что-то вроде этого:

enter image description here

Вот код M из Расширенного редактора:

let
Source = QuerySource,
#"Expanded Custom" = Table.ExpandTableColumn(Source, "ROUTE DATA", {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}, {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}),
#"Unpivoted Only Selected Columns" = Table.Unpivot(#"Expanded Custom", {"ROUTE NAME", "START TIME", "COMPLETE TIME"}, "Attribute", "Value"),
#"Added Index" = Table.AddIndexColumn(#"Unpivoted Only Selected Columns", "Index", 0, 1),
#"Inserted Modulo" = Table.AddColumn(#"Added Index", "Modulo", each Number.Mod([Index], 3), type number),
#"Added Custom1" = Table.AddColumn(#"Inserted Modulo", "Custom", each [Attribute] & " " & Text.From(([Index]-[Modulo])/3)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Attribute", "Index", "Modulo"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom]), "Custom", "Value")
in
#"Pivoted Column"

--- ОБНОВЛЕНО ДЛЯ ОБСУЖДЕНИЯ ---

Начиная с: enter image description here

И расширяя его до ...

enter image description here

Выберите столбцы ROUTE NAME, START TIME и COMPLETE TIME, а затем перейдите на вкладку Transform , а затем Unpivot Columns стрелка раскрывающегося списка и Отключить только выбранные столбцы как раньше:

enter image description here

Теперь выберите столбец UTID и затем Преобразовать вкладку , затем Сгруппировать по , настроить диалоговое окно следующим образом и нажать ОК:

enter image description here

Вы увидите что-то вроде этого:

enter image description here

Перейдите на вкладку Добавить столбец , а затем Пользовательский столбец и настройте его следующим образом:

enter image description here

Затем разверните новый Cuстолбец stom, чтобы увидеть что-то вроде этого:

enter image description here

Затем добавьте еще один пользовательский столбец ( Добавить столбец вкладка> Пользовательский столбец) настроить так:

enter image description here

Вы должны увидеть что-то вроде этого:

enter image description here

Разверните записи в столбце Custom.1.Это должно выглядеть примерно так:

enter image description here

Щелкните столбец Custom, затем вкладку Add Column и Стрелку выпадающего меню стандартной кнопки и выберите Modulo .Введите 3 и нажмите ОК.Вы увидите что-то вроде этого:

enter image description here

Добавьте еще один пользовательский столбец, настроенный так:

enter image description here

Выдолжно выглядеть примерно так:

enter image description here

Удалите столбцы, которые вам больше не нужны (например, Count, AllData, Custom, UTID.1, Attributeи по модулю), чтобы получить что-то вроде этого:

enter image description here

Затем щелкните столбец Custom2 и затем вкладку Transform и Сводный столбец , а затем выберите Значение для записи Столбец значений , нажмите Дополнительные параметры , а затем стрелку раскрывающегося списка , чтобы выбрать Не объединять и нажимать ОК.Вы должны увидеть что-то вроде этого:

enter image description here

Вот код:

let
Source = QuerySource,
#"Expanded Custom" = Table.ExpandTableColumn(Source, "ROUTE DATA", {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}, {"UTID", "ROUTE NAME", "START TIME", "COMPLETE TIME"}),
#"Unpivoted Only Selected Columns" = Table.Unpivot(#"Expanded Custom", {"ROUTE NAME", "START TIME", "COMPLETE TIME"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Only Selected Columns", {"UTID"}, {{"Count", each Table.RowCount(_), type number}, {"AllData", each _, type table}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each {0..[Count]-1}),
#"Expanded Custom1" = Table.ExpandListColumn(#"Added Custom", "Custom"),
#"Added Custom2" = Table.AddColumn(#"Expanded Custom1", "Custom.1", each [AllData]{[Custom]}),
#"Expanded Custom.1" = Table.ExpandRecordColumn(#"Added Custom2", "Custom.1", {"Column1", "UTID", "Attribute", "Value"}, {"Column1", "UTID.1", "Attribute", "Value"}),
#"Inserted Modulo1" = Table.AddColumn(#"Expanded Custom.1", "Modulo", each Number.Mod([Custom], 3), type number),
#"Added Custom1" = Table.AddColumn(#"Inserted Modulo1", "Custom2", each [Attribute] & " " & Text.From(([Custom]-[Modulo])/3)),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Count", "AllData", "Custom", "UTID.1", "Attribute", "Modulo"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Custom2]), "Custom2", "Value")
in
#"Pivoted Column"
0 голосов
/ 06 июня 2018

Щелкните по значку раскрытия в правом верхнем углу таблицы и выберите нужные строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...