задача: мне нужно конвертировать суммы планируемые по последнему известному курсу (курса на будущее так-то нет).
Я использовал LASTNONBLANK, но он работает не до конца корректно.
CALCULATETABLE( LASTNONBLANK('currency_rates'[Exchange rate],MAX('currency_rates'[Exchange rate])),
'currency_rates'[Date]<= SELECTEDVALUE('facts'[next_payment_date]) &&
'currency_rates'[Currency]=SELECTEDVALUE(facts'[next_payment_currency])
Таким образом я пытался заменить конструкцию
"@Rate", CALCULATE (SELECTEDVALUE ( 'Daily Exchange Rates'[Rate] )
из паттернов.
Остальной код такой же. То есть я пытался заменить дату
Работает криво, потому что в таблице, где есть каждая сделка - конвертация идёт.
А вот агрегирования по годам нет.
Может есть более оптимальные способы выбрать эту дату?
CALCULATETABLE(LASTDATE()...)
спасибо. Изучу способ
Хм, функция вернёт дату,мне же надо вернуть курс. Ладно поищу ещё
вернет дату последнего доступного курса...
calculateпринимает в качестве фильтра таблицу , далее сами додумайте, все просто
Придумал решение лучше и удобнее) Просто протянуть таблицу курсов и использовать автозаполнение вниз. Так и курс будет пересчитываться каждый день, и не надо мудрить с условиями, мол заполнен курс или нет.
Лучше - это затянуть курс через запрос в факт и не заниматься ерундой
Ну, так курс и будет затягиваться) Просто без сложных уравнений. Просто у меня курс на "планируемую дату" уже будет в таблице обменных курсов.
ну вот) В SQL добавил curerrent_date + interval '2' year И всё. Автозаполнение в PQ было. Кстати, я в раздумьях начал читать комментарии под статьёй, может действительно есть решение в Даксе удобное, так Марко Руссо предложил такое же решение (размножить курсы вперед по датам), так как его Дакс работает не оптимально. "@Rate", VAR LastDateSelected = MAX ( 'Date'[Date] ) VAR LastDateWithRates = CALCULATE ( MAX ( 'Monthly Exchange Rates'[Date] ), REMOVEFILTERS(), 'Date'[Date] <= LastDateSelected ) VAR Result = CALCULATE ( SELECTEDVALUE ( 'Monthly Exchange Rates'[Rate] ), 'Date'[Date] = LastDateWithRates ) А что вы предлагали?
В 3 раза короче и быстрее
Ну, по определению он не может быть быстрее решения с продлением таблицы справочника до нужной даты. А вот сделать лучше решение 9 месячной давности было бы любопытно глянуть
Обсуждают сегодня