Сила Pivot и цена закрытия - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь использовать Power Pivot для анализа портфеля акций в любой момент времени.

Модель данных:

  • транзакции таблица с транзакциями покупки и продажи
  • исторические_цены таблица с ценой закрытия каждой акции
  • security_lookup таблица с символом и другой информацией об акциях (будь то паевой инвестиционный фонд, отрасль, крупный капитал и т. Д.).

Отношения «один ко многим» связывают столбец символа в security_lookup с таблицами транзакций и исторического значения.

Я могу заставить основную стоимость работать правильно, выполняя sumx (транзакции, количество * цена). Однако я не могу получить текущую стоимость своих активов. У меня есть мера под названием «Текущая цена», которая находит последнюю цену закрытия на

Current Price :=
CALCULATE (
    LASTNONBLANK ( Historical_prices[close], min[close] ),
    FILTER (
        Historical_Prices,
        Historical_prices[date] = LASTDATE ( historical_prices[date] )
    )
)

Однако, когда я пытаюсь найти текущее значение безопасности с помощью

Current Value = sumx(transactions,transactions[quantity]*[Current Price])

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

1 Ответ

0 голосов
/ 05 сентября 2018

Проблема с вашим показателем Current Value заключается в том, что вы оцениваете [Current Price] в контексте строки таблицы transactions (поскольку SUMX является итератором), поэтому вместо этого он видит только дату, связанную с этой строкой последнего свидания. Или, точнее, дата этой строки является последней датой в контексте фильтра меры.

Самое простое решение - это, вероятно, вычислить Current Price вне итератора, используя переменную, а затем передать эту константу, чтобы вам не пришлось беспокоиться о контекстах строк и фильтров.

Current Value =
    VAR CurrentPrice = [Current Price]
    RETURN SUMX(transactions, transactions[quantity] * CurrentPrice)
...