Страницы: 1
RSS
Группировка по датам с разбивкой по времени при условии, Группировка по времени на определенном условии
 
Добрый день
Для знатоков PQ.Нужно данные разложить по датам и времени при условии количества >1.Пример прилагается. Буду признателен за помощь
 
Морс, что-то Вы совсем с DAX не дружите. Может, и не стоит продолжать, пока не изучите? Тут же даже сложности нет :)
Вычисляемый столбец:
Код
filter=
VAR curDate = 'Таблица4'[Дата]
VAR curSeller = 'Таблица4'[Продавец]
VAR curProd = 'Таблица4'[Товар]
VAR c =
    COUNTROWS (
        FILTER (
            ALL ( 'Таблица4' );
            'Таблица4'[Дата] = curDate
                && 'Таблица4'[Продавец] = curSeller
                && 'Таблица4'[Товар] = curProd
        )
    )
VAR result = c > 1
RETURN
    result

меры:
Код
count:=CALCULATE ( COUNTROWS ( 'Таблица4' ); 'Таблица4'[filter] )

Код
sum:=CALCULATE ( SUM ( 'Таблица4'[Сумма] ); 'Таблица4'[filter] )
Изменено: surkenny - 28.05.2022 01:32:04
 
Согласен, я новичок.Был уверен, что в PQ используется язык "М", а DAX используется в  Power Pivot.Видимо что то упустил. Спасибо за вариант
 
Морс, у Вас не было в файле запроса PQ. Можно сделать и там. Но подобную аналитику лучше делать в PP. А решите Вы потом, что нужно вывести для пользователя в отдельный срез этот минимальный параметр, что бы он мог переключать 0,1,2.., а расчеты должны меняться в зависимости от выбора. Обновлять запрос в таком случае не лучший вариант :)
Изменено: surkenny - 28.05.2022 09:20:02
 
 Вы правы,но в данных много строк, и сводная притормаживает даже,а в PQ все очень быстро обрабатывается. И других решений по переключению не будет.Поэтому если можно прошу показать в PQ как это будет
Изменено: Морс - 28.05.2022 10:33:27
 
Морс,
Код
let
  src = Excel.CurrentWorkbook(){[ Name = "Таблица4" ]}[Content],
  typed = Table.TransformColumnTypes ( src, { { "Дата", type date }, { "Дата и время", type datetime }, { "Сумма", type number } } ),
  group = Table.Group (
    typed,
    { "Товар", "Дата", "Продавец" },
    { { "tbl", ( t ) => if Table.RowCount ( t ) > 1 then t else #table ( {}, {} ), type table } }
  ),
  combine = Table.Combine ( group[tbl] )
in
  combine
 
Всё получилось. Вы профи.Благодарю за помощь
Страницы: 1
Наверх