Как получить результат на основе даты с несколькими условиями на power bi?

Я пытаюсь создать проверку на основе даты и некоторых фильтров

моя таблица ввода

Status  Type    Date        PolicyNo 
PS      T607    01-01-2020  1002
PS      T608    01-01-2020  1002
CF      T646    01-01-2020  1002
PS      T607    04-01-2020  1003

Мое состояние

1) Как применить несколько условий за один день

  • Бывший. 01-01-2020 в день 1002 политики (1002) у нас есть три типа T607 с любым из (T608 / T646) со статусом (PS / CF), выходное значение может быть 0, иначе 1

2) Мой ожидаемый результат

Status  Type    Date        PolicyNo    Accept
PS      T607    01-01-2020  1002        0
PS      T608    01-01-2020  1002        0
CF      T646    01-01-2020  1002        0
PS      T607    04-01-2020  1003        1

РЕДАКТИРОВАТЬ:

Date
01-01-2020
01-01-2020
01-01-2020

PolicyNo
1002
1002
1002

Type : T697 with (T608 or T646)

T607 - compalsory so (&&)
T608 - Optional so (||)
T646 - Optional so 

(and)

Status : PS or CF 
PS - Optional so (||)
CF - Optional 

Условие заключения: та же дата (например, 01-01-2020) и тот же номер политики (например, 1002) с (Тип: T697 с (T608 или T646)) с (Статус: PS или CF)


person KARTHIKEYAN.A    schedule 21.01.2020    source источник


Ответы (1)


Несколько условий в M (Power Query) для настраиваемого столбца:

= if [Date] = Date.From(DateTime.LocalNow()) and [Type] = "T607" and [PolicyNo] = 1003 then 1 else 0

И так далее...

Примечание: синтаксис должен быть в нижнем регистре, так как M чувствителен к регистру. Вы также можете складывать «если» или использовать еще «если». Вы также можете использовать условие or.

Вы можете сделать то же самое в DAX thou. С функциями IF() и OR() (как новый столбец):

= IF(OR([Date] = TODAY(), [Type] = "T607", [PolicyNo] = 1003), 1, 0)

ИЗМЕНИТЬ

На ваш 4-й комментарий. Этот логик отлично работает (упрощенный пример):

введите здесь описание изображения

person Strawberryshrub    schedule 21.01.2020
comment
Я работаю с динамическими данными. Дата и номер политики являются динамическими, тип T697 с любым из (T608 / T646) со статусом (PS / CF) - это статическое состояние. - person KARTHIKEYAN.A; 21.01.2020
comment
WITCH(TRUE(),'DatewithOtherConditions'[type] = "T607" && 'DatewithOtherConditions'[type] = "T608" || 'DatewithOtherConditions'[type] = "T646" && 'DatewithOtherConditions'[status] = "CF" || 'DatewithOtherConditions'[status] = "CF" && DatewithOtherConditions[Date] ,0,1) я пишу этот код и получаю неверный результат. - person KARTHIKEYAN.A; 21.01.2020
comment
Я ожидаю, что ((Value1 && (Value2 || Value3)) && (Value4 || Value5)) зависит от номера политики и дат выполнения. - person KARTHIKEYAN.A; 21.01.2020
comment
if (([Type] = "T607" and ([Type] = "T608" or [Type] = "T646")) and ([Status] = "PS" or [Status] = "CF")) then 0 else 1 также не работает и дает неверный результат. Условием является дата и номер политики. В тот же день с той же Политикой Ни одно из вышеуказанных условий не должно удовлетворять - person KARTHIKEYAN.A; 21.01.2020
comment
Ваш вопрос и комментарии сбивают с толку ^^ На основании этого я понятия не имею, как должно выглядеть ваше окончательное состояние. Вы можете попробовать опубликовать свое окончательное состояние поэтапно или упрощенным способом. Так может быть: (Value=1 && (Value = 2 || Value2 = 3)) and Date = PolicyNo - person Strawberryshrub; 21.01.2020