Is it possible if I have one column with names and another with pay. i.e.

John $120 John $100 Sally $90 Sally $100 Sally $80

to extract the values from column 2 for both John and Sally and then average them and place the results into two cells in another column? Could I use spreadsheet commands or do I need VBA to do this automatically.

You could use either

`AVERAGEIFS`

(for xl07 and onwards)- A PivotTable see Debra’s site for a good reference

If your data was in `A2:B6`

then this formula in `D1`

(with “John” in `C1`

) works

`=AVERAGEIFS($B$2:$B$6,$A$2:$A$6,D1)`

### Answer：

If you need your spreadsheet to work with excel versions earlier than 2007, you can also use this formula:

```
=SUM(($D$1=$A$2:$A$6)*($B$2:$B$6)) / COUNTIF($A$2,$D$1)
```

This is an array formula, so you’ll need to press CTRL+SHIFT+ENTER instead of just ENTER when entering it.

The formula works with the sample table in *brettdj*‘s answer, where

- List of names is in A2:A6
- List of values is in B2:B6
- “John” is in D1
- This formula goes into E1 (or anywhere, actually).

It works by calculating the sum of values in B2:B6 where the corresponding A2:A6 value is John, and then dividing it by the total number of Johns in A2:A6, which returns the average.

### Answer：

It works perfectly if you use semicolon (;) instead of comma (,) as it is below:

```
=AVERAGEIFS($B$2:$B$6,$A$2:$A$6,D1) - it doesn't work,
=AVERAGEIFS($B$2:$B$6;$A$2:$A$6;D1) - it works!
```

Tags: excelexcel