«Подводя итоги по пунктам, подсчитайте результаты и поместите их на гистограмму» - PullRequest
0 голосов
/ 12 июня 2019

Для моего испытания мне нужно посчитать, сколько раз корабль входит в порт и сколько раз корабль покидает порт.Я назначаю +1 каждый раз, когда он входит, и -1 каждый раз, когда он уходит.Если все движения регистрируются с точностью до 100%, накопленное значение никогда не может быть больше +1 (поскольку корабль не может войти в порт дважды, не оставляя один между ними :)) или меньше -1 (для той же логики).Как вы можете догадаться, он не зарегистрирован на 100% с точностью, и я хочу показать, сколько судов отклоняется от en на сколько.

Для этого примера я использую следующие данные:

Корабли: A, B и C

Порты: X и Y

Регистрация:

ID1 - Ship A enters X (+1)
ID2 - Ship A leaves X (-1)
ID3 - Ship A enters Y (+1)
ID4 - Ship B leaves Y (-1)
ID5 - Ship C leaves X (-1)
ID6 - Ship C enters Y (+1)
ID7 - Ship C leaves Y (-1)

Необходимо выполнить следующие шаги:

Шаг 1: накоплено для всехports:

Ship A = +1
Ship B = -1
Ship C = -1

Шаг 2: значение для гистограммы для всех портов:

'+1' occurs 1 time
'-1' occurs 2 times

Шаг 3: Поместить эти значения в историю гистограммы.

Илитолько для порта X:

Шаг 1: Суммирование для порта X:

Ship A = 0
Ship B = 0
Ship C = -1

Шаг 2: Значение для гистограммы для порта X:

'0' occurs 2 times
'-1' occurs 1 time

Шаг 3:Поместите эти значения в одну и ту же историю гистограммы.

Основная проблема заключается в том, что мне нужно иметь возможность фильтровать результаты после завершения отчета, поэтому я не могу поместить все в вычисляемые таблицы или столбцы, потому что теряюспособность фильтра тогда.Я могу создать показатель для выполнения первого шага, но не могу поместить результат этого показателя в гистограмму, поскольку Power BI не знает «контекст» этого показателя.И я не могу дать этому контекст, потому что это делается в модели данных, что снова заставит меня потерять способность фильтра."

 CalcSumPerShip = 
    CALCULATE(
        SUMMARIZE(
            SHIP;
            SHIP[Ship];
            "SumPerShip";
            SUM(SHIP[Value])
        )
   )

Это не работает, потому что результатом будет вектор, а результат измерения должен быть скалярным. Есть идеи, как сделать гистограмму из моих данных?

**Редактировать **

Модель данных очень проста:

enter image description here

Первичные данные приведены в этой таблице:

enter image description here

...