Tibco Spotfire — вычислять среднее значение, только если в столбце минимум 3 значения — см. описание

Я хочу рассчитать среднее значение в Spotfire только тогда, когда есть минимум 3 значения. если нет значений или только 2 значения, среднее значение должно быть пустым

Необработанные данные:

Product       Age          Average
1
2
3             10      
4             12   
5             13             11
6
7             18 
8             19 
9             20             19
10            21             20

введите здесь описание изображения


person BULB    schedule 30.08.2017    source источник


Ответы (1)


Единственный способ, которым я действительно мог это сделать, - это 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]

Это даст вам следующие результаты. Вы можете игнорировать/скрывать два столбца, которые вам не нужны.

РЕЗУЛЬТАТЫ

+---------+-----+---------+------------------+------------------+
| 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 |
+---------+-----+---------+------------------+------------------+
person scsimon    schedule 30.08.2017
comment
Привет, Сксимон! Большое спасибо, что нашли время и помогли мне в этом. Но у меня есть еще одна проблема, которую нужно исправить. Я также прикрепил еще одно изображение, когда я использовал то же решение, которое вы предоставили, оно не работает. Пожалуйста, помогите. - person BULB; 31.08.2017
comment
@BULB, в чем проблема? С приведенными вами примерными данными все работает отлично. То, что вы опубликовали, является перекрестной таблицей. Я показал вам, как это сделать, — это вставить вычисляемый столбец в ваши исходные данные, и это то, к чему относился первоначальный вопрос, поскольку не было агрегаций. - person scsimon; 31.08.2017
comment
Когда я добавляю данные к продукту 1 и 2, он показывает среднее значение для продукта 1 и 2. В идеале этого не должно происходить, потому что для продукта 1 нет предыдущих данных для 3 скользящего среднего. продукт 2 имеет только данные для продуктов 2 и 1. - person BULB; 01.09.2017
comment
Вы следовали инструкциям, которые я перечислил, для создания вычисляемых значений? Вам нужна ТОЛЬКО эта формула для кросс-таблицы? Не может быть и того, и другого. Вам необходимо предоставить более подробную информацию. Мой ответ правильный на исходный вопрос. Если у вас есть новый вопрос, откройте новую тему. - person scsimon; 01.09.2017
comment
Конечно, спасибо @scsimon. Спасибо за вашу помощь - person BULB; 14.09.2017