Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
28.01.2021, 17:40
|
|||
---|---|---|---|
|
|||
Вопрос по DAX формулам: как получить последнее значение на выбранную дату |
|||
#18+
Здравствуйте. Имеется такая таблица. Результат неверен. Хотелось бы видеть значение 12885,82625 на 04.12.2019. При выборе даты, например, 02.08.2019 выводилось бы 13236,9. Формулы, которые пытался использовать: Remainder:= var a = CALCULATE(LASTNONBLANK('Table1'[RemDoc], 1), FILTER(ALL('Date'),'Date'[DateKey] <= MAX('Table1'[DateKey]))) var b = IF((a<=0),0) return a ****** Remainder:= var suma = CALCULATE (SUM('Table1'[RemDoc]), FILTER (ALL('Date'),'Date'[DateKey] <= MAX('Table1'[DateKey]))) var rem = IF((suma<0),0,suma) return rem ****** Остаток:= SUMX (VALUES ('Table1'[Partner]), VAR LastBalanceDate = CALCULATE ( MAX ( Table1'[DateKey] ) ) RETURN CALCULATE ( SUM ('Table1'[RemDoc]), 'Date'[DateKey] >= LastBalanceDate)) **** ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2021, 08:26
|
|||
---|---|---|---|
Вопрос по DAX формулам: как получить последнее значение на выбранную дату |
|||
#18+
Earl11, во первых это DAX, а в Excel Pivot работает на MDX, так что поосторожней т.к. иногда встречаются грабли во вторых не совсем понятно что именно используется для фильтрации (наброшены на Pivot) - какие поля из каких таблиц (напр. в Table1 и Date таблицах есть одинаковое поле DateKey), соответственно даже не смотря на активную связь в сравнении - в данном случае нужно чтобы с обоих сторон стояла одна и та-же таблица, если DateKey идёт из измерения Date (а не Table1, где по идее DateKey скрыто от пользователя) то придётся всё по цепи в функции filter() приводить к общему виду, т.е. заменить то что стоит в MAX() с MAX(' Table1 '[DateKey])) на MAX(' Date '[DateKey])) так что первый вариант должен быть вполне рабочим Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2021, 12:54
|
|||
---|---|---|---|
|
|||
Вопрос по DAX формулам: как получить последнее значение на выбранную дату |
|||
#18+
vikkiv, В обоих таблицах есть DateKey и таблица Date фильтрует Table1. При выборе, например, 25.09 хотелось бы увидеть такой результат Как Вас понял, столбец DateKey должен выбираться из таблицы Date, а не из Table1, верно? UPD: даже при такой формуле последнее значение не выводится, а выводится максимальное из всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.01.2021, 14:11
|
|||
---|---|---|---|
Вопрос по DAX формулам: как получить последнее значение на выбранную дату |
|||
#18+
Earl11, Всё зависит от структуры модели данных, у нас в упрощённом случае такая конструкция с условно измерением даты и таблицей фактов - lastnonblank схема из daxpatterns вполне удовлетворительно работает, какие поля и из каких разбросанных объектов (и их связи) там у вас - сложно сказать. Тем более в Excel с дополнительной фильтрацией на разных уровнях через MDX (где при такой форме это всё засовывается в подзапросы с известными проблемами работы на контекстах, в where и пр.) вместо родного для табличной модели DAX, поэтому начальную проверку разумнее осуществлять на другом интерфейсе более под это приспособленном (Power BI / SSMS) чтобы не бороться с ветряными мельницами / проблемами которых может и не быть. п.с. оно не только максимальное но ещё и находится в максимальной дате, т.е. из предоставленного явно не следует что результат неправильный (хотя с др. стороны формула должна так-же заполнять пустые даты последним значением из предыдущих дней), напр. у меня в отличии от вашего варианта в lastnonblank есть sum, есть дополнительная нежелательная фильтрация то вместо all идёт allexcept() ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=49&mobile=1&tid=1857199]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 247ms |
total: | 369ms |
0 / 0 |