根據其他列的某些條件取列平均值我正在尋找一種方法來根據另一列的某些條件對列數據求平均值。
下表顯示了我想要實現的目標。
我想取時間平均強度值並用平均值製表一個新列。
平均值將基於“步驟”和組作為觸發器,即來自同一組和同一步驟的所有強度值將
取平均值並製表一次。 我嘗試了 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 ),
.
)
回复:根據其他列的某些條件取列平均值謝謝吉姆。