0

PowerPivot にいくつかのテーブルがあります。

  1. Stock テーブル -WKRelStrengthフィールドは次のとおりです。

    ティッカー、日付、StockvsMarket% (値はパーセンテージ)、RS+- (値は 0 または 1)

  2. カレンダー テーブル - 日付フィールドを持つ Cal。

テーブル間には多対 1 の関係があります。

3 か月前からその行の日付までの日付の各行に対して RS+ を集計しようとしています。つまり、3 か月から現在までの合計です。私は多くの計算を試みましたが、私が返すことができる最高のものは循環参照エラーです。ここに私の式があります:

=calculate(sum([RS+-]),DATESINPERIOD(Cal[Date],LASTDATE(Cal[Date]),-3,Month))

これがxlsxファイルです

4

2 に答える 2

0

まず、使用している数式はメジャーとして機能するように設計されています。これは、計算列ではうまく機能しない場合があります。第 2 に、個々のレコードではなく、メジャー レベルとして集計を行う方が適切です。

繰り返しになりますが、あなたの状況を完全には理解していませんが、記録レベルでこれを行うことが絶対に重要である場合は、「早期」機能を使用することをお勧めします。

対応する行の値に基づいて関数をフィルタリングする場合は、列名を以前の関数でラップするだけです。数式で LastDate を Early に変更してみてください。

于 2014-11-14T15:00:36.570 に答える
0

ファイルをダウンロードできませんでしたが、あなたが求めているのは、Rob Collie が「世界で最も偉大なフォーミュラ」(GFITW) と呼んでいるものです。これはテストされていませんが、試してください:

= CALCULATE (
SUM ( WKRelStrength[RS+-] ),
FILTER (
    ALL ( Cal ),
    Cal[Date] <= MAX ( Cal[Date] )
        && Cal[Date]
            >= MAX ( Cal[Date] ) - 90
) )

これにより、過去 90 日間、つまり約 3 か月が得られることに注意してください。正確に前の 3 か月を取得することは可能ですが、わずかに異なる期間を比較することになるため、間違いなく最適ではありません (個人的な選択だと思います)。

また、選択した最後の日付を使用するという点で合計がある場合、これは「奇妙な」動作をします。

于 2014-05-05T18:10:46.240 に答える