Добрый день, уважаемые форумчане!
Необходимо в данные продаж подтянуть последнюю актуальную на дату продажи цену.
В случае, если нет данных о цене на даты до продажи, вывести самую раннюю установленную цену (независимо от даты этой цены). Если данных о цене нет вообще - null.
На маленьких объемах данных работает следующий код:
Но на больших объемах безумно медленно.
Может, кто-то подскажет более быстрый код.
Пример.xlsx (19.37 КБ)
Необходимо в данные продаж подтянуть последнюю актуальную на дату продажи цену.
В случае, если нет данных о цене на даты до продажи, вывести самую раннюю установленную цену (независимо от даты этой цены). Если данных о цене нет вообще - null.
На маленьких объемах данных работает следующий код:
Код |
---|
#"Объединенные запросы" = Table.NestedJoin(#"Измененный тип",{"Товар"},#"Цены",{"Товар"},"Цена",JoinKind.LeftOuter), #"Замененное значение" = Table.ReplaceValue( #"Объединенные запросы", each [#"Цена"], each if Table.IsEmpty( [#"Цена"] ) then null else let OrderDate = [Дата], MinPriceDate = List.Min([#"Цена"][Дата]), FilterDate = List.Max({OrderDate,MinPriceDate}), Filter = Table.LastN(Table.SelectRows([#"Цена"], each [Дата] <= FilterDate ), 1)[Цена]{0} in Filter, Replacer.ReplaceValue, {"Цена"} ) |
Но на больших объемах безумно медленно.
Может, кто-то подскажет более быстрый код.
Пример.xlsx (19.37 КБ)