Как получить соответствующую цену наименьшей даты, выбранной в слайсере даты в Power BI - PullRequest
0 голосов
/ 13 марта 2020

Я новичок в работе с DAX и Power BI, поэтому, пожалуйста, не судите. Моя проблема кажется (и может быть) простой. В любом случае, здесь мы go:

У меня есть набор данных, который содержит 3 столбца: Дата (дата), Цена (число с плавающей запятой), Производительность (%)

Описание атрибутов: Дата и цена константы, которые извлекаются из внешнего источника данных. Производительность - это переменная изменения цены с течением времени в процентах. Это процентное изменение цены текущей даты по отношению к первой дате в выборе временного ряда (выбранный «от даты» визуального среза даты).

Я хочу создать динамическую c строку график, который показывает производительность с течением времени. Сложность здесь в том, что когда я меняю «с даты», я хочу, чтобы производительность была переменной. То есть цена выбранного «с даты» является новой базовой ценой и должна рассчитываться соответственно.

Формула: дата = t, цена на дату t = pt, производительность на дату t = pert

Диапазон дат: с 1.1.2000 по 31.12.2010

Исходная ситуация, когда «date from» в визуальном срезе даты = 1.1.2000:

  • t0 = 1.1.2000
  • pt0 = 5,00
  • pert0 = 0%
  • t5 = 6.1.2000
  • pt5 = 5,054
  • pert5 = (pt5-pt0) / pt0 = 1,08%

после изменения даты срез, так что «с даты» теперь 10.10.2009:

  • t0new = 10.10.2009
  • pt0new = 9,938
  • pert0new = 0%
  • t5new = 15.10.2009
  • pt5new = 9,832
  • pert5new = (pt5-pt0) / pt0 = -1,05%

Как описано выше, я хочу, чтобы все, что выбрано в качестве отправной точки из среза даты, использовалось в качестве нового базового значения для расчета производительности, и график должен корректироваться соответствующим образом.

Я знаю, как сделать динамическую линейную диаграмму c, но я не могу определить меры и вычисленные столбцы, которые мне нужны для этого.

Любая помощь очень ценится!

Приветствия, MLU

1 Ответ

0 голосов
/ 15 марта 2020
  1. Рассчитайте контрольный показатель как цену, связанную с первой датой в периоде. SELECTEDVALUE предполагает, что у вас есть одна цена за дату , в противном случае используйте агрегатор (например, MIN, MAX, AVERAGE). Я использую ALLSELECTED, поэтому на эталонный тест влияет только фильтрующий контекст (срезы), и вы можете легко использовать его в визуализациях, которые изменяют контекст.
  2. Сохраните наш эталонный тест в переменной для дальнейшего использования
  3. Разделить каждая цена по эталону. Здесь нам нужно применить агрегатор к цене, я использовал AVERAGE, предполагая, что у вас есть только одна цена в день, поэтому результатом является сама цена.

Вот мера:

Price vs Dynamic Benchmark :=
VAR vbenchmark = CALCULATE(SELECTEDVALUE(Dataset[Price]),FILTER(ALL( Dataset[Date]), Dataset[Date] = CALCULATE(min(Dataset[Date])), ALLSELECTED(Dataset))
return
AVERAGE(Price) / vbenchmark
...