Formula help

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a text value in cells A1:D1. Let's say that the values read across
the row:
A1 = "Duck", B1 = "Duck", C1 = "Cat", D1 = "Duck"

I want a formula in cell E1 that will return "No" in this case, meaning that
the items are not all same.

The bit that makes it too hard for me is that there may be blanks, and the
blanks should not be counted. So:
A1 = "Duck", B1 = "", C1 = "Duck", D1="Duck" should be a "Yes" in column E.

Thanks very much for any help.
Daniel
 
Try a variation of this:
E1: =SUMPRODUCT((A1:A10<>"")/COUNTIF(A1:A10,A1:A10&""))
That formula counts the number of non-blank, unique items.

Does that help?

***********
Regards,
Ron
 
Hi Ron

Thanks for offering a solution, but I'm not sure how to apply it. Maybe my
example wasn't clear, but I wasn't sure why you have A1:A10 - I'm trying to
test across the row A1:D1, then copy that formula down to 12,000 rows.

Hope that clarifies.
Daniel
 
Um...OK..You want this:
E1: =SUMPRODUCT((A1:D1<>"")/COUNTIF(A1:D1,A1:D1&""))


Does that help?

***********
Regards,
Ron
 
This works perfectly - sorry, I now see how I could have just made the column
to row adjustment myself.

I confess, I don't really understand the formula, but I guess that doesn't
matter - thanks very much for providing a solution.

Daniel
 
See if this helps with the understanding:

Using this data:
A1: DUCK
B1: DUCK
C1: (blank)
D1: CAT

and the formula =SUMPRODUCT((A1:D1<>"")/COUNTIF(A1:D1,A1:D1&""))

The (A1:D1<>"") part tests if each cell in A1:D1 is not blank. Each
non-blank returns a 1, each blank returns a zero. (Actually, it returns TRUE
and FALSE, but Excel converts them to 1's and 0's)
Consequently, the example data would return this array: 1,1,0,1

Next, the COUNTIF(A1:D1,A1:D1&"") section counts how many times it finds
each cell's value in the range A1:D1.
Our data would return the array: 2,2,1,1

So the resulting array divisions would match the items from the first array
with the items in the second array to get: 1/2, 1/2, 0/2, 1/1

The SUMPRODUCT function adds all of those values and is only really
necessary in this example to force Excel to perform array calculations. In
this case, the total equals 2 unique items.

You could skip the SUMPRODUCT function and use this formula instead:
=SUM((A1:D1<>"")/COUNTIF(A1:D1,A1:D1&""))
....but you'd need to confirm that array formula by holding down the [Ctrl]
and [Shift] keys when you press [Enter]. For many people, that's too obscure
a combination to remember only occaissionally. Hence, I generally prefer the
SUMPRODUCT function approach.

I hope that helps?

***********
Regards,
Ron
 
That's really clever - thanks for taking the time to explain.

As you've probably guessed, the actual example I'm applying this to isn't
about ducks and cats. My problem is that it's not actually A1, B1, C1, and
D1 that I'm testing, but rather G1, M1, S1 and Z1.
Can the same formula work across this range (to put the answer in AA1)?

Thanks again - if you've moved on to help others and feel this thread is at
close, I'll quite understand

Daniel

Ron Coderre said:
See if this helps with the understanding:

Using this data:
A1: DUCK
B1: DUCK
C1: (blank)
D1: CAT

and the formula =SUMPRODUCT((A1:D1<>"")/COUNTIF(A1:D1,A1:D1&""))

The (A1:D1<>"") part tests if each cell in A1:D1 is not blank. Each
non-blank returns a 1, each blank returns a zero. (Actually, it returns TRUE
and FALSE, but Excel converts them to 1's and 0's)
Consequently, the example data would return this array: 1,1,0,1

Next, the COUNTIF(A1:D1,A1:D1&"") section counts how many times it finds
each cell's value in the range A1:D1.
Our data would return the array: 2,2,1,1

So the resulting array divisions would match the items from the first array
with the items in the second array to get: 1/2, 1/2, 0/2, 1/1

The SUMPRODUCT function adds all of those values and is only really
necessary in this example to force Excel to perform array calculations. In
this case, the total equals 2 unique items.

You could skip the SUMPRODUCT function and use this formula instead:
=SUM((A1:D1<>"")/COUNTIF(A1:D1,A1:D1&""))
...but you'd need to confirm that array formula by holding down the [Ctrl]
and [Shift] keys when you press [Enter]. For many people, that's too obscure
a combination to remember only occaissionally. Hence, I generally prefer the
SUMPRODUCT function approach.

I hope that helps?

***********
Regards,
Ron


Daniel Bonallack said:
This works perfectly - sorry, I now see how I could have just made the column
to row adjustment myself.

I confess, I don't really understand the formula, but I guess that doesn't
matter - thanks very much for providing a solution.

Daniel
 

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

Back
Top