在查询编辑器中编辑使用DAX创建的“ NEW TABLE”

时间:2019-07-01 12:32:58

标签: powerbi dax

我有一个现有的表,该表有30列&> 10行。我在每一行(单元格)的每一列中都有一个具有例如结构的数据。 [123,234,455]。在当前表中,我可以拆分123,234,455并使用“编辑查询”选项将其附加到另一个表中。但是使用当前数据结构,它将创建所有30列的重复。 所以我想对数据进行子集化。我使用带有摘要的“新建表”并仅提取了我需要的3列。但是现在它不允许我在编辑查询中对其进行编辑。

需要帮助。

我创建了只有3列的NEW TABLE,但是它不允许我在edit查询中对其进行编辑以拆分信息。请查看下面的第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 个答案:

答案 0 :(得分:1)

似乎您对使用Power Query(带有M语言)和DAX的Edit Query感到困惑。

//it gets the entity through the id and sends it whole update: (id, data) => { window.httpMessage = { show: true, success: `Documento <b>#${id}</b> Atualizado`, error: "Documento <b>não Atualizado</b>" } return http.put(`/eletronic-documents/${id}`, data).then(res => res.data) } 将使用Power Query来获取和转换数据。您可以使用Edit Query选项拆分类似Code列的列。

by Delimiter

选择Name Code Tom [123,345,346] Don [234,543,908] 列,然后单击“拆分”命令,按定界符进行拆分,然后选择逗号作为定界符。

之后,您可以选择“名称”列,然后使用“取消透视”(其他列)来获得所需的结果。

请注意,这根本不是DAX。 DAX用于分析具有汇总和汇总数据功能的数据。有关说明,请参见here

答案 1 :(得分:0)

拇指规则是-如果由DAX创建,则不能在其上使用M进行任何进一步的更改。

使用DAX函数创建表(现在已完成)(SUMMARIZE函数)时,将不会在编辑查询窗格中看到它们。

但是DAX仍然可以解决此要求, 我已将您的新表用作InputTable,

在InputTable中创建这3个计算列。

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

如果解决了您的问题,请接受。