Страницы: 1
RSS
Под каждое значение в строке сводной выполнить определенное действие, Excel и Power Bi
 
Здравствуйте
Как решить следующую задачу:
в сводной в строках список. Надо под каждое значение списка отдельную меру. Например, если в строке "z", то одна мера, если в строке "x", то другая мера, а по умолчанию третья мера.
Пробовал SWiTCH - не прикрутил
Код
 = 
SWITCH (true(),
    VALUES('Таблица'[Value])= "z", sum('Таблица1'[Столбец2]),VALUES('Таблица'[Value])="x",
    min('Таблица1'[Столбец2]),max('Таблица1'[Столбец2]))

И в Power Pivot и Power Bi
 
Михаил Л, типа такого надо?
Код
Мера 2:=var v = VALUES('Таблица'[Value])
return
IF( COUNTROWS(v) = 1;
   SWITCH (
      v;
      "z"; sum('Таблица1'[Столбец2]);
      "x"; min('Таблица1'[Столбец2]);
      max('Таблица1'[Столбец2])
   )
)

В PBI через SELECTEDVALUE можно чуть проще реализовать, без IF.
Изменено: PooHkrd - 27.05.2022 13:24:23
Вот горшок пустой, он предмет простой...
 
Михаил Л,
в PP:
Код
мера:=
IF (
    HASONEVALUE ( 'Таблица'[Value] );
    SWITCH (
        VALUES ( 'Таблица'[Value] );
        "z"; SUM ( 'Таблица1'[Столбец2] );
        "x"; MIN ( 'Таблица1'[Столбец2] );
        MAX ( 'Таблица1'[Столбец2] )
    );
    MAX ( 'Таблица1'[Столбец2] )
)

в PBI для упрощения IF ( HASONEVALUE ( 'Таблица'[Value] );... ) как раз и придумано SELECTEDVALUE():
Код
мера =
SWITCH (
    SELECTEDVALUE ( 'Таблица'[Value] ),
    "z", SUM ( 'Таблица1'[Столбец2] ),
    "x", MIN ( 'Таблица1'[Столбец2] ),
    MAX ( 'Таблица1'[Столбец2] )
)

upd: Если значение в столбце из первого аргумента SELECTEDVALUE не единственно, то можно значение по умолчанию подставить (для итогов будем другое вычисление делать):
Код
мера = 
    SWITCH (
        SELECTEDVALUE ( 'Таблица'[Value], "total" ),
        "z", SUM ( 'Таблица1'[Столбец2] ),
        "x", MIN ( 'Таблица1'[Столбец2] ),
        "total", AVERAGE ( 'Таблица1'[Столбец2] ),
        MAX ( 'Таблица1'[Столбец2] )
    )

Аналог для PP:
Код
мера:=
IF (
    HASONEVALUE ( 'Таблица'[Value] );
    SWITCH (
        VALUES ( 'Таблица'[Value] );
        "z"; SUM ( 'Таблица1'[Столбец2] );
        "x"; MIN ( 'Таблица1'[Столбец2] );
        MAX ( 'Таблица1'[Столбец2] )
    );
    AVERAGE ( 'Таблица1'[Столбец2] )
)
Изменено: surkenny - 27.05.2022 13:43:11
 
PooHkrd и surkenny, спасибо большое :)
Как же сильно я отстаю
 
Михаил Л, на самом деле DAX - простой язык, главное въехать в контекст вычислений. Как только это случится, все остальное будет получаться само. Ну и писать на нем лучше, конечно, в PBI. Можно сразу посмотреть какие виртуальные таблички получаются на выходе при сложных извращениях.
З.Ы. Кстати, один из российских разработчиков BI принял стратегическое решение слизать полностью конструктор модели и отчетов у PBI вместе с DAX. Так что даже если MC уйдет совсем, то без работы не останемся. ;)
Изменено: PooHkrd - 27.05.2022 14:56:49
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Можно сразу посмотреть какие виртуальные таблички получаются на выходе
Вот это вот интересно как же посмотреть?
В Power Query как-то попроще. Или попривычнее)

Добавил в файл столбец и хотел в Итоги только сумму считать. Опять встрял
Страницы: 1
Наверх