Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Average Tibco Spotfire-仅当一列中至少有3个值时计算平均值-请参见说明_Average_Spotfire_Minimum_Calculation - Fatal编程技术网

Average Tibco Spotfire-仅当一列中至少有3个值时计算平均值-请参见说明

Average Tibco Spotfire-仅当一列中至少有3个值时计算平均值-请参见说明,average,spotfire,minimum,calculation,Average,Spotfire,Minimum,Calculation,我只想在至少有3个值时计算Spotfire中的平均值。如果没有值或只有2个值,则平均值应为空 原始数据: Product Age Average 1 2 3 10 4 12 5 13 11 6 7 18 8 19 9 20 19 10

我只想在至少有3个值时计算Spotfire中的平均值。如果没有值或只有2个值,则平均值应为空

原始数据:

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

我唯一能做到这一点的方法是使用3个计算列。按以下顺序插入这些计算列:

  • If(Min)(If([Age]为NULL,0,[Age])超过(LastPeriods(3,[Product]))0,1)作为[BitFlag]
  • Avg([Age])作为[TempAvg]
  • If([BitFlag]=1[TempAvg])作为[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 |
+---------+-----+---------+------------------+------------------+

我唯一能做到这一点的方法是使用3个计算列。按以下顺序插入这些计算列:

  • If(Min)(If([Age]为NULL,0,[Age])超过(LastPeriods(3,[Product]))0,1)作为[BitFlag]
  • Avg([Age])作为[TempAvg]
  • If([BitFlag]=1[TempAvg])作为[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 |
+---------+-----+---------+------------------+------------------+

嗨,西蒙,非常感谢你在这件事上花时间帮助我。但我还有一个问题需要解决。我还附加了一个图像,当我使用您提供的相同解决方案时,它不起作用。有什么问题吗?根据您提供的示例数据,它可以完美地工作。你贴的是一张交叉表。我向您展示了如何在原始数据中插入一个计算列,这是原始问题所涉及的,因为没有聚合。当我向产品1和2添加数据时,它显示了产品1和2的平均值。理想情况下,这不应该发生,因为对于产品1,3移动平均线之前没有数据。产品2只有产品2和1的数据。您是否按照我列出的说明创建计算值?你是不是只想把这个公式用于交叉表?不能两者兼而有之。你需要提供更多的细节。我的回答对原来的问题是正确的。如果你有新问题,打开一个新的帖子。当然,谢谢@scsimon。谢谢你的帮助嗨,西蒙,非常感谢你在这件事上花时间帮助我。但我还有一个问题需要解决。我还附加了一个图像,当我使用您提供的相同解决方案时,它不起作用。有什么问题吗?根据您提供的示例数据,它可以完美地工作。你贴的是一张交叉表。我向您展示了如何在原始数据中插入一个计算列,这是原始问题所涉及的,因为没有聚合。当我向产品1和2添加数据时,它显示了产品1和2的平均值。理想情况下,这不应该发生,因为对于产品1,3移动平均线之前没有数据。产品2只有产品2和1的数据。您是否按照我列出的说明创建计算值?你是不是只想把这个公式用于交叉表?不能两者兼而有之。你需要提供更多的细节。我的回答对原来的问题是正确的。如果你有新问题,打开一个新的帖子。当然,谢谢@scsimon。谢谢你的帮助