ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   How to write this function? (https://www.excelbanter.com/excel-worksheet-functions/131241-how-write-function.html)

Zilla[_2_]

How to write this function?
 
Say I have the following

A B
1 2 10
2 4 5
3 2 20
4 2 30
5 4 11

How can I write a func. so if the cell values are equal,
for A col, it will add the values in corresponding B col,
then average the value out?

avg = SUM / #occur

So in may example, A1,A3 and A5 are all 2's so...
avg = 60 / 3 = 20

Again, A2 and A5 are both 4's so...
avg = 16 / 2 = 8

Thanks!

--
- Zilla
(Remove XSPAM)



Max

How to write this function?
 
One way ..
In C1: =SUMIF(A:A,A1,B:B)/COUNTIF(A:A,A1)
Copy down
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Say I have the following

A B
1 2 10
2 4 5
3 2 20
4 2 30
5 4 11

How can I write a func. so if the cell values are equal,
for A col, it will add the values in corresponding B col,
then average the value out?

avg = SUM / #occur

So in may example, A1,A3 and A5 are all 2's so...
avg = 60 / 3 = 20

Again, A2 and A5 are both 4's so...
avg = 16 / 2 = 8

Thanks!

--
- Zilla
(Remove XSPAM)





Toppers

How to write this function?
 
=AVERAGE(IF($A$1:$A$100=2,$B$1:$B$100))

entered with Ctrl+Shift+Enter

"Max" wrote:

One way ..
In C1: =SUMIF(A:A,A1,B:B)/COUNTIF(A:A,A1)
Copy down
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Say I have the following

A B
1 2 10
2 4 5
3 2 20
4 2 30
5 4 11

How can I write a func. so if the cell values are equal,
for A col, it will add the values in corresponding B col,
then average the value out?

avg = SUM / #occur

So in may example, A1,A3 and A5 are all 2's so...
avg = 60 / 3 = 20

Again, A2 and A5 are both 4's so...
avg = 16 / 2 = 8

Thanks!

--
- Zilla
(Remove XSPAM)






Zilla[_2_]

How to write this function?
 
Ok thanks, I'll try this way...

"Max" wrote in message
...
One way ..
In C1: =SUMIF(A:A,A1,B:B)/COUNTIF(A:A,A1)
Copy down
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Say I have the following

A B
1 2 10
2 4 5
3 2 20
4 2 30
5 4 11

How can I write a func. so if the cell values are equal,
for A col, it will add the values in corresponding B col,
then average the value out?

avg = SUM / #occur

So in may example, A1,A3 and A5 are all 2's so...
avg = 60 / 3 = 20

Again, A2 and A5 are both 4's so...
avg = 16 / 2 = 8

Thanks!

--
- Zilla
(Remove XSPAM)







Zilla[_2_]

How to write this function?
 
Thanks but this will be tedious since you hard-coded "2",
which is just an example value. So if I change "2" to "19",
I'd have to change it in ALL the formulas...

"Toppers" wrote in message
...
=AVERAGE(IF($A$1:$A$100=2,$B$1:$B$100))

entered with Ctrl+Shift+Enter

"Max" wrote:

One way ..
In C1: =SUMIF(A:A,A1,B:B)/COUNTIF(A:A,A1)
Copy down
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Say I have the following

A B
1 2 10
2 4 5
3 2 20
4 2 30
5 4 11

How can I write a func. so if the cell values are equal,
for A col, it will add the values in corresponding B col,
then average the value out?

avg = SUM / #occur

So in may example, A1,A3 and A5 are all 2's so...
avg = 60 / 3 = 20

Again, A2 and A5 are both 4's so...
avg = 16 / 2 = 8

Thanks!

--
- Zilla
(Remove XSPAM)








Toppers

How to write this function?
 
Change the 2 to a cell address

=AVERAGE(IF($A$1:$A$100=$Z$1,$B$1:$B$100))


"Zilla" wrote:

Ok thanks, I'll try this way...

"Max" wrote in message
...
One way ..
In C1: =SUMIF(A:A,A1,B:B)/COUNTIF(A:A,A1)
Copy down
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Say I have the following

A B
1 2 10
2 4 5
3 2 20
4 2 30
5 4 11

How can I write a func. so if the cell values are equal,
for A col, it will add the values in corresponding B col,
then average the value out?

avg = SUM / #occur

So in may example, A1,A3 and A5 are all 2's so...
avg = 60 / 3 = 20

Again, A2 and A5 are both 4's so...
avg = 16 / 2 = 8

Thanks!

--
- Zilla
(Remove XSPAM)








Max

How to write this function?
 
welcome. it should return what you're after.
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Ok thanks, I'll try this way...




Max

How to write this function?
 
You could point Topper's array suggestion to the source cells in col A
Eg in C1, array-entered (press CTRL+SHIFT+ENTER):
=AVERAGE(IF($A$1:$A$100=A1,$B$1:$B$100))
Copy down (Adapt the ranges to suit before you copy down)
--
Max
Singapore
http://savefile.com/projects/236895
xdemechanik
---
"Zilla" wrote in message
...
Thanks but this will be tedious since you hard-coded "2",
which is just an example value. So if I change "2" to "19",
I'd have to change it in ALL the formulas...

"Toppers" wrote in message
...
=AVERAGE(IF($A$1:$A$100=2,$B$1:$B$100))

entered with Ctrl+Shift+Enter





All times are GMT +1. The time now is 11:48 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com