根据其他列的某些条件取列平均值我正在寻找一种方法来根据另一列的某些条件对列数据求平均值。
下表显示了我想要实现的目标。
我想取时间平均强度值并用平均值制表一个新列。
平均值将基于“步骤”和组作为触发器,即来自同一组和同一步骤的所有强度值将
取平均值并制表一次。 我尝试了 Col mean 函数,但它一直多次插入平均值。
顺便说一句,是否可以创建一个带有摘要(平均值)的新表。 该表将包括已平均的步骤,它所属的组和平均值。(仅红色数据)
| 时间戳 | 步 | 强度 | 团体 | (想要平均值)例如 |
1 | 1 | 110 | 一种 | 119.7 |
| 2 | 1 | 115 | 一种 | —— |
| 3 | 1 | 123.5 | 一种 | —— |
| 4 | 1 | 124 | 一种 | —— |
| 5 | 1 | 126 | 一种 | —— |
| 3 | 2 | 132 | 乙 | 205.73 |
| 4 | 2 | 140 | 乙 | —— |
| 5 | 2 | 345.2 | 乙 | —— |
| 1 | 2 | 10 | 一种 | 18.33 |
| 2 | 2 | 20 | 一种 | —— |
| 3 | 2 | 25 | 一种 | —— |
| . | . | . | . | |
| . | . | . | . | |
分析数据表脚本编写回复:根据其他列的某些条件取列平均值对公式稍加修改即可满足您的需求

If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( :Intensity, :Group, :Step ),
.
)
回复:根据其他列的某些条件取列平均值谢谢你的公式有效。 顺便说一句,是否可以将此“If”公式嵌套到另一个“If”中,以便该公式仅在“强度”大于 100 时执行。 那么这个公式会是什么样子呢?
回复:根据其他列的某些条件取列平均值你的问题有几种解释方式。
- 不包括在组平均值的计算中,强度 > 100 的任何值
If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( If( :Intensity > 100, :Intensity, . ), :Group, :Step ),
.
)
- 如果组中强度的第一个值 > 100,则不计算组平均值
If( (Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step) & :Intensity > 100,
Col Mean( :Intensity, :Group, :Step ),
.
)
回复:根据其他列的某些条件取列平均值谢谢吉姆。