Excellent=1, Good=2, etc.

G

Guest

Ok, I want to average the ratings for a particular product. Here are the
ratings:

Excellent
Good
Excellent
Fair
Good
Good
Poor

If Excellent=1, Good=2, Average=3, Fair=4, Poor=5.... then what's the
average? I'm trying to find a formula that will calculate this.
 
R

Ron Rosenfeld

Ok, I want to average the ratings for a particular product. Here are the
ratings:

Excellent
Good
Excellent
Fair
Good
Good
Poor

If Excellent=1, Good=2, Average=3, Fair=4, Poor=5.... then what's the
average? I'm trying to find a formula that will calculate this.

Set up a table with your equivalences:

Excellent 5
Good 4
Average 3
Fair 2
Poor 1

In an adjacent column to your ratings, enter the formula:

(assumes ratings start in A1, and that the table is NAME'd tbl, although you
could use absolute cell references instead)


=VLOOKUP(A1,tbl,2,FALSE)

Average the resultant numbers.

If you do not want to use an adjacent column and lookup table, you could use
the following formula:

=SUM(COUNTIF(A:A,"excellent")*5,COUNTIF(A:A,"Good")*4,
COUNTIF(A:A,"Average")*3,COUNTIF(A:A,"Fair")*2,
COUNTIF(A:A,"Poor"))/COUNTA(A:A)

You may want to adjust the reference to column A.


--ron
 
L

Leo Heuser

If you do not want to use an adjacent column and lookup table, you could
use
the following formula:

=SUM(COUNTIF(A:A,"excellent")*5,COUNTIF(A:A,"Good")*4,
COUNTIF(A:A,"Average")*3,COUNTIF(A:A,"Fair")*2,
COUNTIF(A:A,"Poor"))/COUNTA(A:A)

You may want to adjust the reference to column A.

Hi Ron

Or shorter

=SUM(COUNTIF(A:A,{"Excellent","Good","Average","Fair","Poor"})*{5,4,3,2,1})/COUNTA(A:A)

Maybe even

=SUM(COUNTIF(A:A,{"Excellent","Good","Average","Fair","Poor"})*{1,2,3,4,5})/COUNTA(A:A)

:)

LeoH
 
G

Guest

One (short but complex) option is:
=SUM(IF(TRANSPOSE(A2:A100)=C2:C5,D2:D5))

Hope it helped
Ola Sandström


Note:
This is an Array formula (=it does several calculation in one cell)
All array formulas must be confirmed by holding down Ctrl and Shift then hit
Enter.
Just hit - the normal - Enter will not work --> #VALUE!

C2:D5 is the reference list:
Text Rate
Excellent 1
Good 2
Fair 3
Poor 4
 
A

Arvi Laanemets

Hi

Entered as array formula (with Ctrl+Shift+Enter), assuming your ratings are
in range A2:A100:
=AVERAGE(MATCH(A2:A100,{"Excellent";"Good";"Average";"Fair";"Poor"},0))

Arvi Laanemets
 
R

Ron Rosenfeld

Or shorter

=SUM(COUNTIF(A:A,{"Excellent","Good","Average","Fair","Poor"})*{5,4,3,2,1})/COUNTA(A:A)

Maybe even

=SUM(COUNTIF(A:A,{"Excellent","Good","Average","Fair","Poor"})*{1,2,3,4,5})/COUNTA(A:A)


I like that. And your second answer even gives the result expected by the
OP!!!!


--ron
 
R

Ron Rosenfeld

Set up a table with your equivalences:

Excellent 5
Good 4
Average 3
Fair 2
Poor 1

In an adjacent column to your ratings, enter the formula:

(assumes ratings start in A1, and that the table is NAME'd tbl, although you
could use absolute cell references instead)


=VLOOKUP(A1,tbl,2,FALSE)

Average the resultant numbers.

If you do not want to use an adjacent column and lookup table, you could use
the following formula:

=SUM(COUNTIF(A:A,"excellent")*5,COUNTIF(A:A,"Good")*4,
COUNTIF(A:A,"Average")*3,COUNTIF(A:A,"Fair")*2,
COUNTIF(A:A,"Poor"))/COUNTA(A:A)

You may want to adjust the reference to column A.

As Leo pointed out, I had the equivalences backwards, but you should be able to
change them easily.


--ron
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top