2014-09-11 4 views
0

Я хочу сделать что-то вроде этого:Как вы возвращаете набор совпадающих строк и объединяете один из столбцов?

=related(othertable[aColumn]) 

Но где есть несколько строк, соответствующих он должен объединить все aColumn значений, которые соответствуют.

Что-то вроде этого, но работа:

=concatenate(values(filter(othertable,othertable[bColumn]=[value in this table]))) 

ответ

1

Я не мог понять, как это сделать в DAX, так вместо того, чтобы это сделал в энергетике Query.

//using this as a start: 
aTable = #table({"A","B","C"},{{1,"a",1},{1,"b",2},{2,"c",3},{3,"d",4}}), 
//I'm concatenating text...so need to have a function stating what to concatenate with 
fCombine = Combiner.CombineTextByDelimiter(":"), 
aGroupRowsCat = Table.Group( 
    aTable, 
    {"A"}, 
    {{"CatOfB", each fCombine([C]), type text}} 
) 

Я в конечном итоге с:

A|CatOfB 
-+------ 
1|a:b 
2|c 
3|d 
+1

awesome! давно искал что-то подобное :) –

1

Джейсон Томас ответил на этот вопрос на своем блоге Group Multiple Rows to Single Delimited Row in PowerPivot

В этой должности он объясняет, что если сначала создать иерархию родитель/ребенок, то вам может использовать PATH, чтобы вернуть список, разделенный запятой.

Он использует функцию RANKX и немного логики для создания отношения parent/child, затем вычисляет родительское значение для интересующего столбца и, наконец, использует функцию PATH для вычисления разделенного запятыми списка.