Get average based on value in another row

喜夏-厌秋 提交于 2019-12-19 04:18:10

问题


I have values in an Excel file like this:

QR  |  QR AVG  |  val1  |
q1                5
q1                3
q1                4
q2                7
q2                9
q3                10
q3                11
q3                12
q3                11
q4                5
q5                5
q5                7

And I would like the QR AVG field to represent the average value partitioned by different QR values. In other words, I'd like to have the following values after my calculation:

QR  |  QR AVG  |  val1  |
q1     4          5
q1     4          3
q1     4          4
q2     8          7
q2     8          9
q3     11         10
q3     11         11
q3     11         12
q3     11         11
q4     5          5
q5     6          5
q5     6          7

Where I don't know the exact number of rows that I will have, and I will be intermittently adding rows randomly into the table.

I would prefer not to write a macro to do this if possible. Any idea how I might go about this?


回答1:


Try this: =AVERAGEIF($A$2:$A$13,A2,$C$2:$C$13)

That should go in column B (QR Average) in each cell. The middle param will automatically change, of course.




回答2:


Try this function adjusting ranges inside:

=AVERAGEIF($A$2:$A$17,A2,$C$2:$C$17)



回答3:


Create a pivot table at the same spreadsheet.

Select columns A, B and C (Sheet1!$A:$C). Click "Insert", and then "Pivot Table".

Place QR at "Row Labels" field and Val1 (as average) at the "Values" field.

Then, use in B2:

=VLOOKUP(A2,$E$2:$F$6,2,1)  

Drag the formula to all cells in column B.

It will look like this:

:

来源:https://stackoverflow.com/questions/16846367/get-average-based-on-value-in-another-row

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!