根據其他列的某些條件取列平均值我正在尋找一種根據另一列上的某些條件取列數據平均值的方法。
下表顯示了我想要實現的目標。
我想獲取時間平均強度值並將平均值製成一個新列。
平均值將基於“步驟”和組作為觸發器進行計算,即來自同一組和同一步驟的所有強度值將
進行平均並製表一次。 我嘗試了 Col 均值函數,但它不斷多次插入平均值。
順便說一句,是否可以創建一個帶有摘要(平均值)的新表。 該表將包括已平均的步驟、所屬組和平均值。(僅紅色數據)
| 時間戳 | 步 | 強度 | 團體 | (想要平均值)例如 |
1 | 1 | 110 | A | 119.7 |
| 2 | 1 | 115 | A | - |
| 3 | 1 | 123.5 | A | - |
| 4 | 1 | 124 | A | - |
| 5 | 1 | 126 | A | - |
| 3 | 2 | 132 | 乙 | 205.73 |
| 4 | 2 | 140 | 乙 | - |
| 5 | 2 | 345.2 | 乙 | - |
| 1 | 2 | 10 | A | 18.33 |
| 2 | 2 | 20 | A | - |
| 3 | 2 | 25 | A | - |
| 。 | 。 | 。 | 。 | |
| 。 | 。 | 。 | 。 | |
消費者和市場研究回复:根據其他列的某些條件取列平均值謝謝吉姆。
回复:根據其他列的某些條件取列平均值您的問題有幾種解釋方式。
- 組平均值的計算中不包括任何強度 > 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 ),
.
)
回复:根據其他列的某些條件取列平均值謝謝你,公式有效。 順便說一句,是否可以將此“If”公式嵌套到另一個“If”中,以便僅當“強度”大於 100 時才執行該公式。 那麼公式會是什麼樣子呢?
回复:根據其他列的某些條件取列平均值對公式稍加修改就會得到你想要的

If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( :Intensity, :Group, :Step ),
.
)