Отредактируйте «NEW TABLE», созданный с помощью DAX, в редакторе запросов - PullRequest
1 голос
/ 01 июля 2019

У меня есть существующая таблица, которая имеет 30 столбцов и> 10 строк.У меня есть данные в одном столбце каждой строки (ячейки) со структурой, например.[123234455].В текущей таблице я могу разделить 123,234,455 и добавить его друг к другу, используя опцию редактирования запроса.Но с текущей структурой данных это создаст повторение всех 30 столбцов.Так что я хочу подмножество данных.Я использовал New Table с помощью суммирования и вытащил только 3 столбца, которые мне нужны.Но теперь он не позволяет мне редактировать его в запросе на редактирование.

Нужна помощь.

Я создал NEW TABLE только с 3 столбцами, но он не позволяет мне редактировать его в запросе на редактирование.разделить информацию.Обратитесь к разделу 4 для получения более подробной информации.

Текущие данные

Name    Code
Tom [123,345,346]
Don [234,543,908]

Ожидаемый результат

Name    Code
Tom 123
Tom 345
Tom 346
Don 234
Don 543
Don 908

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Кажется, вы путаете Edit Query, который использует Power Query (с языком M) и DAX.

Edit Query будет использовать Power Query для получения и преобразования данных. Вы можете разделить столбец, как ваш Code столбец, используя параметр by Delimiter.

Name    Code
Tom [123,345,346]
Don [234,543,908]

Выберите столбец Code, щелкните команду «Разделить», разделите ее по разделителю и выберите запятую в качестве разделителя.

После этого вы можете выбрать столбец Имя и использовать Unpivot (другие столбцы), чтобы получить желаемый результат.

Обратите внимание, что это вовсе не DAX. DAX используется для анализа данных с помощью функций, которые агрегируют и суммируют данные. См. здесь для объяснения.

0 голосов
/ 02 июля 2019

Правило большого пальца: если оно создано DAX, то над ним нельзя использовать M для каких-либо дальнейших изменений.

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

Но DAX все еще может решить это требование, Я использовал вашу новую таблицу как InputTable,

Создайте эти 3 вычисляемых столбца внутри InputTable.

Cleaned Code1 = 
VAR removing_Square_brackets = SUBSTITUTE(Input_Table[Code],"[","")
Var required_code = PATHITEM(SUBSTITUTE(removing_Square_brackets, ",", "|"), 1)
return required_code

Cleaned Code2 = 
VAR removing_Square_brackets = SUBSTITUTE(Input_Table[Code],"[","")
Var required_code = PATHITEM(SUBSTITUTE(removing_Square_brackets, ",", "|"), 2)
return required_code

Cleaned Code3 = 
VAR removing_Square_brackets = SUBSTITUTE(Input_Table[Code],"]","")
Var required_code = PATHITEM(SUBSTITUTE(removing_Square_brackets, ",", "|"), 3)
return required_code

Итак, ваш стол будет выглядеть так,

enter image description here

А затем теперь снова создайте новую таблицу с этим DAX,

Final_Out_Table = UNION(
SELECTCOLUMNS(Input_Table, "Name",Input_Table[Name], "Code", Input_Table[Cleaned Code1]),
SELECTCOLUMNS(Input_Table, "Name",Input_Table[Name], "Code", Input_Table[Cleaned Code2]),
SELECTCOLUMNS(Input_Table, "Name",Input_Table[Name], "Code", Input_Table[Cleaned Code3])
)

И это дает такую ​​таблицу вывода,

enter image description here

Примите решение, если оно решит вашу проблему.

...