私は本当にこの操作を行うことができる唯一の方法は、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 |
+---------+-----+---------+------------------+------------------+
こんにちはScsimon、時間を取って、この1に私を助けてくれてありがとうそんなに。しかし、もう1つの問題が修正されています。もう1つのイメージも添付しました。同じソリューションを使用した場合、それは機能していません。親切に助けてください。 – BULB
@BULB何が問題なのですか?あなたが与えたサンプルデータで、それは完全に動作します。あなたが投稿したのはクロステーブルです。私があなたに示したことは、元のデータに計算された列を挿入することです。元のデータは、集計がないため元の質問との関連性があります。 – scsimon
製品1と2にデータを追加するとき、製品1と2の平均値が表示されます。製品1では3つの移動平均のデータがないため、理想的には発生しません。製品2には製品2と1のデータのみがあります。 – BULB