Страницы: 1
RSS
Совместимость мер BI и Excel PP
 
Добрый день!

Пытаюсь перетащить отчёт из BI в эксель - нужно делать презентации в PowerPoint по отдельным срезам.
Оказалось, что синтаксис несколько отличается и то, что работает в BI не работает в экселе. Подскажите, пожалуйста, как обойти?

Для примера столкнулся с проблемами в двух мерах:
1. Тут жалуется на макс, который не может работать с типом стринг. В BI всё работает.
Код
Индекс процессов = //if ( not isblank([Индекс задач в текущих процессах]),
    IF (
        MIN ( 'БД'[Дата начала процесса] ) <= MAX ( 'Календарь'[Date] ),
        SWITCH (
            (
                MAX ( 'БД'[Дата завершения процесса] ) > MAX ( 'Календарь'[Date] )
                    || COUNTBLANK ( 'БД'[Дата завершения процесса] ) > 0
                    || MAX ( 'БД'[Статус] ) = "В работе"
            )
                + (
                    ( MAX ( 'БД'[Статус] ) = "Успешно завершена" ) * 2
                        + ( MAX ( 'БД'[Статус] ) = "Завершена с отказом" ) * 4
                )
                    * ( MAX ( 'БД'[Дата завершения процесса] ) >= MIN ( 'Календарь'[Date] ) ),
            1, 1, //в работе
            2, 2, //успешно завершено
            3, 1, //в работе (в работе + успешно)
            4, 3, //завершена с отказом
            5, 1  //в работе (в работе + отказ)
        )
    )

2. Тут жалуется на IN. В BI всё работает.
Код
Кол-во задач по статусам = 
MAXX (
    ADDCOLUMNS (
        VALUES ( 'БД'[Этап воронки] ),
        "ss",
            CALCULATE (
                COUNTROWS (
                    FILTER (
                        VALUES ( 'БД'[№ процесса] ),
                        [Индекс процессов] IN VALUES ( 'Статус'[Sort] )
                    )
                ),
                ALLEXCEPT ( 'БД', 'БД'[Деп иниц], 'БД'[Этап воронки], 'БД'[Инициатор], 'БД'[Название процесса] )
            )
    ),
    [ss]
)


Можете что-то без примера подсказать или лучше сделать?
 
Цитата
Andrey Belkin написал:
жалуется на IN
В 2019 Office нормально работает, хоть и подчеркивает красным. Некоторые форумчане писали, что у них не работает.
Цитата
Andrey Belkin написал:
макс, который не может работать с типом стринг
У меня нормально работает.
 
Увы, у нас только 2016 (
Да и функция выдает такое - "Семантическая ошибка. Функция MAX принимает аргумент, результатом вычисления которого являются числа или даты, и не может работать со значениями типа String."
Изменено: Andrey Belkin - 02.03.2022 17:20:19
 
Andrey Belkin, попробуйте заменить:
MAXX ( 'БД'; 'БД'[Статус] ) = "В работе"
 
Аналогично. Опять хочет только число, а не стринг.
 
Цитата
написал:
2. Тут жалуется на IN. В BI всё работает.
без файла трудно помочь вам, но попробуйте использовать CONTAINS вместо IN
примерно так:
Код
MAXX (
    ADDCOLUMNS (
        VALUES ( 'БД'[Этап воронки] ),
        "ss",
            CALCULATE (
                COUNTROWS (
                    FILTER (
                        VALUES ( 'БД'[№ процесса] ),
                        CONTAINS('Статус','Статус'[Sort],[Индекс процессов] )
                    )
                ),
                ALLEXCEPT ( 'БД', 'БД'[Деп иниц], 'БД'[Этап воронки], 'БД'[Инициатор], 'БД'[Название процесса] )
            )
    ),
    [ss]
)
Изменено: azma - 02.03.2022 18:27:17
 
Цитата
Andrey Belkin написал:
MAX ( 'БД'[Статус] ) = "В работе"
для себя подобные задачи всегда решаю так: создаю вычисляемый столбец с индексами в нужном мне порядке, а затем по этому индексу спокойно фильтрую. Как-то так
 
Цитата
написал:
для себя подобные задачи всегда решаю так: создаю вычисляемый столбец с индексами в нужном мне порядке, а затем по этому индексу спокойно фильтрую. Как-то так
Добрый день!

Спасибо, так и сделал вчера. А вот с IN не получается хоть тресни... Даже завершить меру не дает - пишет про ошибку "Выражение недопустимо или является неполным. Неверный синтаксис "in"".

Вот что не так? Синтаксис же соблюден...
Код
Время задач по статусам:=SUMX (
    FILTER (
        VALUES ( 'БД'[№ задачи] );
        [Индекс процессов] in  ( 'Статус'[Sort] )
    );
    [Время задач в текущих процессах]
)

Разобрался. В моей версии PP нет такой функции. Так что теперь главный вопрос - чем ее заменить.

Изменено: Andrey Belkin - 03.03.2022 09:03:47
 
Забавно. Переписал меру -
Код
Время задач по статусам = 
var i1=min( 'Статус'[Sort])
var i2=max( 'Статус'[Sort])
var i3 = 
SUMX (
    FILTER (
        VALUES ( 'БД'[№ задачи] ),
        [Индекс процессов] >=i1 && [Индекс процессов]<=i2
    ),
    [Время задач в текущих процессах]
)
return i3


Всё заработало. Спасибо за подсказки!
Изменено: Andrey Belkin - 03.03.2022 09:46:21
 
Andrey Belkin, а если не секрет, почему не воспользовались функционалом Analyze in Excel?
Вот горшок пустой, он предмет простой...
Страницы: 1
Наверх