Страницы: 1
RSS
Как посчитать количество по условию в вычисляемом столбце Power Query
 
Всем, привет!

Подскажите, как посчитать количество уникальных значений из колонки A для каждого значения из колонки B в вычисляемом столбце PowerQuery? И вообще, возможно ли такое?

Во вложении пример. В столбце С приведен образец, каким должен быть результат.

Потребность этой задачи возникла из-за того, что в PowerBI при подключении к источнику данных в режиме DirectQuery нельзя в вычисляемых столбцах использовать формулу CALCULATE, с помощью которой это легко решается. Поправить на уровне источника данных таблицу тоже нельзя( Остается один вариант - попробовать сделать это на этапе преобразований данных в PowerQuery.
 
Добрый день!
Можно попробовать вот так
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    Пользовательская1 = Table.AddColumn(Источник, "Col", each Table.Group(Источник, {"Номер"}, {{"f", each Table.RowCount(Table.Distinct(_, {"Наименование"}))}})),
    #"Развернутый элемент Col" = Table.ExpandTableColumn(Пользовательская1, "Col", {"Номер", "f"}, {"Номер.1", "f"}),
    Пользовательская2 = Table.SelectRows(#"Развернутый элемент Col", each [Номер] = [Номер.1]),
    #"Удаленные столбцы" = Table.RemoveColumns(Пользовательская2,{"Номер.1"})
in
    #"Удаленные столбцы"
 
Цитата
Борис13 написал:
Остается один вариант - попробовать сделать это на этапе преобразований данных в PowerQuery.
А что в мере DAX'ом проблема разве не решается?
Вот горшок пустой, он предмет простой...
 
Я же говорю, что "в режиме DirectQuery нельзя в вычисляемых столбцах использовать формулу CALCULATE, с помощью которой это легко решается."
Но если есть вариант, как по другому написать такую формулу, чтобы она выдавала желаемый результат, буду признателен (мера не подойдет, т.к. необходимо в зависимости от результата производить как раз в мерах различные агрегации в дальнейшем. Нужен именно вычисляемый столбец. Собственно формула вычисляемого столбца как раз DAX'ом, если данные загружаются "импортом", а не DirectQuery:[CODE]Кол-во уникальных наименований под каждым номером = CALCULATE(DISTINCTCOUNT(Таблица[Наименование]),FILTER(Таблица,Таблица[Номер]=EARLIER(Таблица[Номер])))

Цитата
написал: Можно попробовать вот так
Андрей, работает! То, что надо! Спасибо! Но проблема все-таки осталась(( "Запрос содержит преобразования, которое невозможно использовать в режиме DirectQuery".. Видимо надо на уровне SQL-запроса решать задачу и сразу же загружать данный столбец, на лету считая нужные цифры.
 
Борис13, мой вопрос был не праздный, запрос PQ для режима DQ должен поддерживать folding. А значит в PQ он не решаемый. По крайней мере, лично я не знаю как. Еще раз зачем вам вычисляемый столбец? Почему нельзя посчитать в мере?
Вот горшок пустой, он предмет простой...
 
Мера не подходит, поскольку необходимы именно

Ребята, вопрос закрыл, спасибо! Решил вопрос через запрос SQL - сформировал столбец "на входе"категориальные данные.  
Страницы: 1
Наверх