DAX - Фильтрация меры - как отфильтровать два значения меры, а не одно? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть следующие 4 таблицы:

Customer
Lifts
Reports
Overdue

Данные, содержащиеся в каждой из них:

Customer
Customer
A
B
C
D
E
F

Lifts
Lift ID       Lift Ref      Customer
1             Lift1         A
2             Lift2         A
3             Lift3         B         
4             Lift4         C
5             Lift5         D
6             Lift6         E
7             Lift7         E
8             Lift8         F
9             Lift9         F

Reports 
Lift ID       Report Date        Overdue 
1             01/01/19           Yes 
1             15/06/18           No 
1             12/04/18           Yes 
2             15/09/18           Yes 
2             08/12/18           No 
4             01/01/19           Yes 
6             01/02/19           No

Overdue
Overdue
Yes
No
No Report

Просрочено является отключенной таблицей - она ​​не связана ни с какой другой таблицей

Отношения:

Customer 1<>* Lifts
Lifts  1<>*  Reports

У меня есть срез в отчете для клиентов и просроченных платежей - оба среза с множественным выбором

У меня есть визуальная таблица, добавленная кхолст отчета.Мне нужно, чтобы он отображал самую последнюю дату отчета и соответствующее значение просроченного платежа для каждого подъема (после того, как срезы отфильтровали данные) - если нет отчета для выбранного подъема, верните «Нет отчета» для значения просроченного платежа и оставьте дату отчета какпусто

Если я выберу всех клиентов, кроме Клиента F, из слайсера клиентов, и отчет Да / Нет из слайсера просроченных, я получу в визуальной таблице следующее:

Lift ID           Lift Ref           Overdue      Report Date
1                 Lift1              Yes          01/01/19
3                 Lift3              No Report    
4                 Lift4              Yes          01/01/19
5                 Lift5              No Report    
7                 Lift7              No Report    

Однако чтоНа самом деле я получаю:

enter image description here

Если я выберу всех клиентов, кроме Клиента F, из слайсера клиентов, и Да / Нет из слайсера просроченных, я долженполучите в моей таблице следующее:

Lift ID           Lift Ref           Overdue      Report Date
1                 Lift1              Yes          01/01/19
2                 Lift2              No           08/12/18    
4                 Lift4              Yes          01/01/19
6                 Lift6              No           01/02/19

Однако на самом деле я получаю:

enter image description here

Ниже приведен мойФайл PBIX:

https://1drv.ms/u/s!AuiIgc_S9J5JhbYL_-CFbONVzOLWDA

Я могу добавить здесь меры, которые я использую для MRepDate и MOverdue, но не хочу делать этот пост слишком длинным!

Надеюсь, кто-томожет помочь с этим, как ясводит меня с ума!

1 Ответ

0 голосов
/ 13 февраля 2019

Лучшим подходом было бы использование функции SWITCH с условием TRUE ().

В приведенном ниже примере коммутатор будет проходить через каждый тест до тех пор, пока не достигнет того, который оценивается как true.возвращает этот результат.Случай по умолчанию является необязательным

= SWITCH ( TRUE(),
Logical Test 1, result 1,
Logical Test 2, result 2,
Logical Test 3, result 3,
Default Case
)
...