2017-08-30 5 views

答えて

0

私は本当にこの操作を行うことができる唯一の方法は、3計算であります列。このために、これらの計算列を挿入します。

  • If(Min(If([Age] IS NULL,0,[Age])) over (LastPeriods(3,[Product]))<>0,1) as [BitFlag]
  • Avg([Age]) over (LastPeriods(3,[Product])) as [TempAvg]
  • If([BitFlag]=1,[TempAvg]) as [Average]

これはあなたに以下のような結果が得られます。気にしない2つの列を無視/非表示にすることができます。

結果

+---------+-----+---------+------------------+------------------+ 
| Product | Age | BitFlag |  TempAvg  |  Average  | 
+---------+-----+---------+------------------+------------------+ 
|  1 |  |   |     |     | 
|  2 |  |   |     |     | 
|  3 | 10 |   |    10 |     | 
|  4 | 12 |   |    11 |     | 
|  5 | 13 |  1 | 11.6666666666667 | 11.6666666666667 | 
|  6 |  |   |    12.5 |     | 
|  7 | 18 |   |    15.5 |     | 
|  8 | 19 |   |    18.5 |     | 
|  9 | 20 |  1 |    19 |    19 | 
|  10 | 21 |  1 |    20 |    20 | 
|  11 |  |   |    20.5 |     | 
|  12 | 22 |   |    21.5 |     | 
|  13 | 36 |   |    29 |     | 
|  14 |  |   |    29 |     | 
|  15 | 11 |   |    23.5 |     | 
|  16 | 23 |   |    17 |     | 
|  17 | 14 |  1 |    16 |    16 | 
+---------+-----+---------+------------------+------------------+ 
+0

こんにちはScsimon、時間を取って、この1に私を助けてくれてありがとうそんなに。しかし、もう1つの問題が修正されています。もう1つのイメージも添付しました。同じソリューションを使用した場合、それは機能していません。親切に助けてください。 – BULB

+0

@BULB何が問題なのですか?あなたが与えたサンプルデータで、それは完全に動作します。あなたが投稿したのはクロステーブルです。私があなたに示したことは、元のデータに計算された列を挿入することです。元のデータは、集計がないため元の質問との関連性があります。 – scsimon

+0

製品1と2にデータを追加するとき、製品1と2の平均値が表示されます。製品1では3つの移動平均のデータがないため、理想的には発生しません。製品2には製品2と1のデータのみがあります。 – BULB

関連する問題