Solved

Explain this formula please

Posted on 2012-03-10
3
261 Views
Last Modified: 2012-08-13
could someone please explain what this formula is doing..?

{=MODE(IF(COUNTIF(A$43:A43,DATA!J2:J65535)=0,DATA!J2:J65535+{0,0}))}
0
Comment
Question by:Friggin_Lazy
  • 2
3 Comments
 
LVL 50

Accepted Solution

by:
barry houdini earned 500 total points
ID: 37704966
MODE finds the most common number in a set of numbers. In this case, initially, it's finding the most common number in the range DATA!J2:J65535.

Assuming the formula starts in A44 and A43 is blank or has a text value then the IF function uses COUNTIF to count how many times each value in DATA!J2:J65535 appears in the cell A43 - that will presumably be zero for all of them so in A44 nothing is excluded and the formula gives the most common number.

In A45, though, the range in COUNTIF changes to include A44 so now any value in DATA!J2:J65535 that matches the top value already chosen in A44 is excluded, so you get the MODE without that value, i.e. the second most common number.

This repeats as you go down so you then get the 3rd most common number in A46, 4th in A47 until all numbers in the range are exhausted, then you'll get an #N/A error.

MODE gives an #N/A error if there are no repeated values so +{0,0} is used to "double-up" all values, thus ensuring there are no #N/A values returned even for numbers which only appear once in column J.

This is an "array formula" which needs to be confirmed with CTRL+SHIFT+ENTER

Is it working OK for you? Normally if copied down you need to make the J2:J65535 range "absolute", i.e. put $ signs in like this

=MODE(IF(COUNTIF(A$43:A43,data!J$2:J$65535)=0,data!J$2:J$65535+{0,0}))

I note that the formula will count blank cells as zeroes so unless the range is fully populated you might find, erroneously, that zero appears high up the list, if you don't want that then restrict the range to the populated part of Data!J2:J65535 or change to this version to exclude blanks

=MODE(IF(data!J2:J65535<>"",IF(COUNTIF(A$43:A43,data!J2:J65535)=0,data!J2:J65535+{0,0})))

regards, barry
0
 

Author Closing Comment

by:Friggin_Lazy
ID: 37706587
thank you Barry for providing this great explination.  ( :
0
 
LVL 50

Expert Comment

by:barry houdini
ID: 37706591
Thank you. Sorry, I notice that the $ signs weren't included in that last formula, so the suggested formula to copy down and exclude blanks should be

=MODE(IF(data!J$2:J$65535<>"",IF(COUNTIF(A$43:A43,data!J$2:J$65535)=0,data!J$2:J$65535+{0,0})))

regards, barry
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Introduction This Article is a follow-up to my Mappit! Addin Article (http://www.experts-exchange.com/A_2613.html), it was inspired by an email posting I made to EUSPRIG (http://www.eusprig.org/index.htm), I will briefly cover: 1) An overvie…
This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now