Примените условие в запросе питания (Отфильтруйте самую раннюю дату на основе каждого идентификатора консоли) — PowerBI

#powerbi #powerquery

Вопрос:

Я хотел бы применить некоторые условия при очистке данных в Power BI Power Query.

PowerBI — Запрос мощности

Нужна только одна запись даты для каждого идентификатора CONSOL

Условия

ETD (ДД/ММ/ГГГГ)

Состояние, как показано ниже:

i.) Дата с «нулем» не должна быть выбрана в качестве самой ранней даты, когда для этого идентификатора CONSOL есть доступная дата.

Например: C001 с датой «1/1/2021» следует выбрать в качестве самой ранней даты, но у C002 нет другой доступной даты. В этом случае можно выбрать значение «Null».

ii.) Если у идентификатора CONSOL есть несколько видов транспорта (МОРСКОЙ или ВОЗДУШНЫЙ ,RAI,ROA), приоритеты ТОЛЬКО на самую раннюю дату «МОРСКОГО» или «ВОЗДУШНОГО» вида транспорта.

Например: В C003 даже самая ранняя дата-1/1/2021, но мы фокусируемся только на дате с видом транспорта «МОРСКОЙ» или «ВОЗДУШНЫЙ». Таким образом, самая ранняя дата для C003-1/3/2021, в то время как C004-1/6/2021.

iii.) Если существует только один вид транспорта (не имеет значения, RAI или ROA), будет выбрана самая ранняя дата.

Например: «1/1/2021» для C005 и C006.

Здесь прилагается вместе с pbix: https://ufile.io/twdwgzh8

Спасибо за ваше внимание.

Любая помощь, которую вы можете оказать, будет очень признательна!

Ответ №1:

Вы можете попробовать это ниже.

 earliest = 

var current_row_consolid = min(your_table_name[ConsolID])
var current_row_transport = min(your_table_name[Transport])

var earliest_sea_air =
CALCULATE(
    min(your_table_name[ETD]),
    FILTER(
        ALLEXCEPT(your_table_name,your_table_name[ConsolID]),
        your_table_name[Transport] = "SEA" || your_table_name[Transport] = "AIR"
    )
)

var earliest_others =
CALCULATE(
    min(your_table_name[ETD]),
    FILTER(
        ALLEXCEPT(your_table_name,your_table_name[ConsolID]),
        your_table_name[Transport] <> "SEA" amp;amp; your_table_name[Transport] <> "AIR"
    )
)

return
if(
    ISBLANK(earliest_sea_air),
    earliest_others,
    earliest_sea_air
)
 

Вот окончательный результат-

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