Using multipel sum ranges in Sumproduct() & countif() in array

mubashiraziz

Board Regular
Joined
Apr 2, 2009
Messages
175
I've work hard on this problem and after posting the same problem on below forum got some exceptional answer. I do'nt think so that there can be any more improvements but might be some "Genius" came up with extra-ordinary solution like I am looking for a solution in a single column G:

http://www.excelforum.com/excel-gen...anges-in-sumproduct-and-countif-in-array.html

I want to get students positions in a class like 1st, 2nd, 3rd, etc. There can be two 1st position and 2 2nd positions at a time .............. So to get this I did following steps:
1.In G Column I put logic for Fail and Obtained Marks.
G2=IF(COUNTIF(B2:F2,">=60")=5,SUM(B2:F2),"Fail")
2. Then i made array formula in column H to get the position
={SUMPRODUCT((IF(ISNUMBER($G$2:$G$7),$G$2:$G$7,0)>N(G2))/COUNTIF(G$2:G$7,G$2:G$7&""))+1}
Some improvement to write fail & position
={IF(COUNTIF(B3:F3,">=60")<>5,"Fail",SUMPRODUCT((IF(ISNUMBER($G$2:$G$7),$G$2:$G$7,0)>N(G3))/COUNTIF(G$2:G$7,G$2:G$7&""))+1)}
And more work to get total marks & position and Fail at the same time......
={IF(COUNTIF(B2:F2,">=60")<>5,"Fail",SUM(B2:F2)&"-"&SUMPRODUCT((IF(ISNUMBER($G$2:$G$7),$G$2:$G$7,0)>N(G2))/COUNTIF(G$2:G$7,G$2:G$7&""))+1)}
Now I wounder that is there a way to do all calculations in column H without using column G .... ....
By replacing (if there is any method) G2, G3, G4 etc. with Sum(B2:F2); Sum(B3:F3);Sum(B4:F4) etc. in below formula
={SUMPRODUCT((IF(ISNUMBER($G$2:$G$7),$G$2:$G$7,0)>N(G2))/COUNTIF(G$2:G$7,G$2:G$7&""))+1}

Hope to have a quick & effective solution from experts.


Excel Workbook
ABCDEFGH
1Students NameEngMathPhyChemBioIf Pass Then Marks Else Obtained MarksIf Pass Then Student Position in Class
2John8590597560FailFail
3Maria8569608575374374-2
4JANNY9060609060360360-3
5Gaughan00000FailFail
6Madona7575806580375375-1
7Wright7575758055FailFail
8Trying to get solution as "If Pass Then Position Else "Fail" "I want to skip this column and want the same result in Column G
9
10
Positions
 
Hi mubashiraziz

I think you got a very good solution from DK. It's simple and efficient, I would use it if I had such a problem.

It would be possible to solve it without an auxilliary column but I believe that it would be an array formula very big (several hundred characters), complex and using volatile functions. It would be inefficient and difficult to read and to maintain.

Notice that in your problem you are not only ranking, but also you don't want to take into account the frequency of the positions. This makes the problem more complex. I must say that I'm curious about this requirement, when I know that someont ranked #2, I read this as there was 1 other with a better score. The way you want it, I might rank #2 but have 50 others with better scores than me as long as they all had the same score.
 
Upvote 0
Hi again

I was playing with the problem yesterday and I have a solution that tested OK. As I said before I recommend not to use this type of formulas, they are difficult to read and to maintain. DK's solution is the one I would use, it's clear and efficient. Anyway, this is the solution I came up with, maybe someone comes up with a simpler one. It was bigger and only worked in excel 2007 but now it's working also in prior versions. Please don't ask me to explain or to adapt it, it would take a long time and I'm busy these next days. If you want to test it, please start with the table I posted.

In G2:

=IF(COUNTIF(B2:F2,"<60"),"Fail",SUM(B2:F2)&"-"&1+SUM((IF(COUNTIF(OFFSET($B$2:$F$2,ROW($B$2:$B$11)-ROW($B$2),0),"<60"),-1,SUBTOTAL(9,OFFSET($B$2:$F$2,ROW($B$2:$B$11)-ROW($B$2),0)))>SUM(B2:F2))/MMULT(--(IF(COUNTIF(OFFSET($B$2:$F$2,ROW($B$2:$B$11)-ROW($B$2),0),"<60"),"Fail",SUBTOTAL(9,OFFSET($B$2:$F$2,ROW($B$2:$B$11)-ROW($B$2),0)))=TRANSPOSE(IF(COUNTIF(OFFSET($B$2:$F$2,ROW($B$2:$B$11)-ROW($B$2),0),"<60"),"Fail",SUBTOTAL(9,OFFSET($B$2:$F$2,ROW($B$2:$B$11)-ROW($B$2),0))))),--(ROW($B$2:$B$11)>0))))

This is an array formula, you have to confirm it with CTRL+SHIFT+ENTER.

Copy down.


<table border="1" cellpadding="1" style="background:#FFF; border-collapse:collapse;border-width:2px;border-color:#CCCCCC;font-family:Arial,Arial; font-size:10pt" ><tr><th style="border-width:1px;border-color:#888888;background:#9CF " > </th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" >A</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" width=30 >B</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" width=30 >C</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" width=30 >D</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" width=30 >E</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" width=30 >F</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" >G</th><th style="border-width:1px;border-color:#888888;background:#9CF; text-align:center" width=30 >H</th></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>1</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Students Name</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Eng</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Math</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Phy</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Chem</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Bio</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Result</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>2</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">John</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">59</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Fail</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>3</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Maria</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">85</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">69</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">60</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">85</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">374-2</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>4</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">JANNY</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">90</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">60</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">60</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">90</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">375-1</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>5</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Gaughan</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">74</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">374-2</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>6</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Madona</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">65</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">375-1</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>7</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Wright</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">370-4</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>8</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Izzy</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">59</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">Fail</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>9</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Claire</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">80</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">70</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">360-5</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>10</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Martha</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">74</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">374-2</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>11</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:left;border-width: 1px;border-color:#888888; ">Martha</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">75</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">73</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:center;border-width: 1px;border-color:#888888; ">373-3</td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td></tr><tr><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;background:#9CF; text-align:center; " ><b>12</b></td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td><td style="border-width:1px;border-color:#000000; padding-left:0.5em; padding-top:0.4em; padding-right:0.5em; padding-bottom:0.25em;text-align:right;border-width: 1px;border-color:#888888; "> </td></tr><tr><td colspan=9 style="background:#9CF; padding-left:1em" > [Book1]Sheet3</td></tr></table>
 
Upvote 0
Thanks a lot for your time .....

Oh thanks a lot PGC on such a fabulous solution :) . I feel my self luckiest person to have such informative forums with capable persons like you. Whenever I get some problems I always get a quick response. Sorry to forcing experts to make a formula in one column but you can visit my other link to know the exact story behind this ;) ..

<o:p> </o:p>
Again thx and yes I’ll not ask for the explanations as I already try explain small formula's on a local forums and to my colleagues :banghead:
 
Upvote 0
For what it's worth, maybe...

Insert > Name > Define

Name: Array1

Refers to:

=MMULT(--($B$2:$F$11<60),TRANSPOSE(COLUMN($B$2:$F$11)^0))

Click Add

Name: Array2

Refers to:

=MMULT($B$2:$F$11,TRANSPOSE(COLUMN($B$2:$F$11)^0))

Click Ok

Then, try...

G2, confirmed with CONTROL+SHIFT+ENTER, and copied down:

=IF(A2<>"",IF(COUNTIF(B2:E2,"<60"),"Fail",SUM(B2:F2)&"-"&SUM(IF(FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2))),1))+1),"")

Note that the formula will return #N/A if the data contains empty cells. If this can be the case, the formula can be amended, depending on the desired outcome. Also, note that while the formula avoids the volatile function OFFSET, it's still a resource-intensive formula.
 
Upvote 0
Exclusive Formula Domenic

thanks Domenic,

:eeek: I can't believe it to see such a cool formula, this is unbelievable.

MMMUL() & Frequency() is totally new functions for me and it required ages for me to understand the role of these functions here ....
I've remembered DK pointed about the use of Frequency.....

I"ll be very great full if you can explain these formulas here

=MMULT(--($B$2:$F$11<60),TRANSPOSE(COLUMN($B$2:$F$11)^0))
&
Code:
FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))

PS. you can explain whenever you'll be free. Meanwhile I'll try my level best to understand the concept.
 
Upvote 0
With regards to MMULT, if you haven't already done so, first have a look at Excel's help file for an understanding of this function. Then have a look here, which explains how the calculation of two matrices is carried out.

Array1: =MMULT(--($B$2:$F$11<60),TRANSPOSE(COLUMN($B$2:$F$11)^0))

The above returns a one column by ten row array of values, representing the number of times a grade less than 60 occurs for each row.

---> {1;0;0;0;0;0;1;0;0;0}​

Array2: =MMULT($B$2:$F$11,TRANSPOSE(COLUMN($B$2:$F$11)^0))

The above returns a one column by ten row array of values, representing the sum of all five grades for each row.

---> {339;374;375;374;375;370;339;360;374;373}​

With regards to FREQUENCY, again, if you haven't already done so, have a look at Excel's help file for an understanding of this function.

FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))

The first IF(...,IF(...)) returns an array of values from Array2, where the corresponding value in Array1 equals 0, and the sum of B2:F2 is less than the corresponding value in Array2. The resulting array is used for the data or first argument of FREQUENCY.

---> {FALSE;374;375;374;375;370;FALSE;360;374;373}

The second IF(...,IF(...)) is exactly the same as the first one, and the same resulting array is used for the bins or second argument of FREQUENCY.

---> {FALSE;374;375;374;375;370;FALSE;360;374;373}

FREQUENCY then returns an array of values, representing a count of the number of times a value in the data occurs for each unique value in the bins.

---> {3;2;0;0;1;1;0;1;0}​

This array, returned by FREQUENCY, is then passed to the IF function preceding it, where 1 is returned for each value greater than 0. Otherwise, FALSE is returned.

---> {1;1;FALSE;FALSE;1;1;FALSE;1;FALSE}

This array, in turn, is passed to the SUM function preceding it and returns 5. Lastly, 1 is added to this amount and we get 6. This number, in effect, represents the consecutive ranking for the first student. However, note that SUM(IF(FREQUENCY(...))) is only part of the formula. Since this student received a grade lower than 60, the formula returns "Fail".

When the formula is copied down to the next row, this part of the formula...

SUM(B2:F2)

changes to

SUM(B3:F3)

...and the same evaluation takes place, and so on.
 
Upvote 0
Will you be kind enough to Explain Below

With regards to FREQUENCY, again, if you haven't already done so, have a look at Excel's help file for an understanding of this function.
FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))

The first IF(...,IF(...)) returns an array of values from Array2, where the corresponding value in Array1 equals 0, and the sum of B2:F2 is less than the corresponding value in Array2. The resulting array is used for the data or first argument of FREQUENCY.

---> {FALSE;374;375;374;375;370;FALSE;360;374;373}

The second IF(...,IF(...)) is exactly the same as the first one, and the same resulting array is used for the bins or second argument of FREQUENCY.

---> {FALSE;374;375;374;375;370;FALSE;360;374;373}

FREQUENCY then returns an array of values, representing a count of the number of times a value in the data occurs for each unique value in the bins.

---> {3;2;0;0;1;1;0;1;0}
This array, returned by FREQUENCY, is then passed to the IF function preceding it, where 1 is returned for each value greater than 0. Otherwise, FALSE is returned.

---> {1;1;FALSE;FALSE;1;1;FALSE;1;FALSE}

Again thx a lot Domenic, today I've spent whole day to learn about MMUL() and Frequency. I've made parts of your formulas and learn how to results are coming Especially Array1 & Array2 using MMUL have been clearly understood by me. Last part is also easy but I'm feeling ashamed that after spending hours I couldn't figure these result ....
{3;2;0;0;1;1;0;1;0}
Before we had ten (10) [ {FALSE;374;375;374;375;370;FALSE;360;374;373}]values each but after applying we got nine (9) [3;2;0;0;1;1;0;1;0}] values. I tried very hard but .....
I've deleted unnecessary column and will you be kind enough to explain the result in column I. I'm totally stumped here. Again sorry to bother you ........


array formula (2)

<table style="font-family: Arial,Arial; font-size: 10pt; background-color: rgb(255, 255, 255); padding-left: 2pt; padding-right: 2pt;" border="1" cellpadding="0" cellspacing="0"> <colgroup><col style="font-weight: bold; width: 30px;"><col style="width: 88px;"><col style="width: 64px;"><col style="width: 64px;"><col style="width: 64px;"><col style="width: 64px;"><col style="width: 64px;"><col style="width: 146px;"></colgroup><tbody><tr style="background-color: rgb(202, 202, 202); text-align: center; font-weight: bold; font-size: 8pt;"><td>
</td><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td><td>F</td><td>G</td></tr><tr style="height: 35px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">1</td><td style="font-family: Verdana; text-align: left;">Students Name</td><td style="font-family: Verdana; text-align: center;">Eng</td><td style="font-family: Verdana; text-align: center;">Math</td><td style="font-family: Verdana; text-align: center;">Phy</td><td style="font-family: Verdana; text-align: center;">Chem</td><td style="font-family: Verdana; text-align: center;">Bio</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); font-weight: bold; text-align: center;">FQY</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">2</td><td style="font-family: Verdana; text-align: left;">John</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="background-color: rgb(255, 0, 255); font-family: Verdana; text-align: center;">59</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">3</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">3</td><td style="font-family: Verdana; text-align: left;">Maria</td><td style="font-family: Verdana; text-align: center;">85</td><td style="font-family: Verdana; text-align: center;">69</td><td style="font-family: Verdana; text-align: center;">60</td><td style="font-family: Verdana; text-align: center;">85</td><td style="font-family: Verdana; text-align: center;">75</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">2</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">4</td><td style="font-family: Verdana; text-align: left;">JANNY</td><td style="font-family: Verdana; text-align: center;">90</td><td style="font-family: Verdana; text-align: center;">60</td><td style="font-family: Verdana; text-align: center;">60</td><td style="font-family: Verdana; text-align: center;">90</td><td style="font-family: Verdana; text-align: center;">75</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">0</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">5</td><td style="font-family: Verdana; text-align: left;">Gaughan</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">80</td><td style="font-family: Verdana; text-align: center;">80</td><td style="font-family: Verdana; text-align: center;">74</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">0</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">6</td><td style="font-family: Verdana; text-align: left;">Madona</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">80</td><td style="font-family: Verdana; text-align: center;">65</td><td style="font-family: Verdana; text-align: center;">80</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">1</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">7</td><td style="font-family: Verdana; text-align: left;">Wright</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">80</td><td style="font-family: Verdana; text-align: center;">80</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">1</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">8</td><td style="font-family: Verdana; text-align: left;">Izzy</td><td style="background-color: rgb(255, 0, 255); font-family: Verdana; text-align: center;">59</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">0</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">9</td><td style="font-family: Verdana; text-align: left;">Claire</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">80</td><td style="font-family: Verdana; text-align: center;">70</td><td style="font-family: Verdana; text-align: center;">70</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">1</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">10</td><td style="font-family: Verdana; text-align: left;">Martha</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">74</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0); text-align: center;">0</td></tr><tr style="height: 18px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">11</td><td style="font-family: Verdana; text-align: left;">Martha</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">75</td><td style="font-family: Verdana; text-align: center;">73</td><td style="background-color: rgb(204, 255, 255); color: rgb(255, 0, 0);">#N/A</td></tr><tr style="height: 21px;"><td style="font-size: 8pt; background-color: rgb(202, 202, 202); text-align: center;">12</td><td>
</td><td>
</td><td>
</td><td>
</td><td>
</td><td>
</td><td style="background-color: rgb(0, 0, 0); color: rgb(255, 0, 0); font-weight: bold; font-size: 12pt;">CRITICAL PART </td></tr></tbody></table>
<table style="border-style: groove; border-color: rgb(0, 255, 0); font-family: Arial; font-size: 10pt; background-color: rgb(255, 252, 249); color: rgb(0, 0, 0);"><tbody><tr><td>Spreadsheet Formulas</td></tr><tr><td><table style="font-family: Arial; font-size: 9pt;" border="1" cellpadding="2" cellspacing="0"><tbody><tr style="background-color: rgb(202, 202, 202); font-size: 10pt;"><td>Cell</td><td>Formula</td></tr><tr><td>G2</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G3</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G4</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G5</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G6</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G7</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G8</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G9</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G10</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr><tr><td>G11</td><td>{=FREQUENCY(IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)),IF(Array1=0,IF(SUM(B2:F2) < Array2,Array2)))}</td></tr></tbody></table></td></tr><tr><td>Formula Array:
Produce enclosing
{ } by entering
formula with CTRL+SHIFT+ENTER!
</td></tr></tbody></table>

Excel tables to the web >>
Excel Jeanie HTML 4
 
Upvote 0
Once FREQUENCY has been evaluated to the following...

=FREQUENCY({FALSE;374;375;374;375;370;FALSE;360;374;373},{FALSE;374;375;374;375;370;FALSE;360;374;373})​

...here's how the final evaluation takes place...

  • The first value in the bins array is FALSE, and is ignored.
  • The second value in the bins array is 374. There are 3 values in the data array that equal 374.
  • The third value in the bins array is 375. There are 2 values in the data array that equal 375.
  • The fourth value in the bins array is 374. Since this is a duplicate bin number, 0 is returned.
  • The fifth value in the bins array is 375. Since this is a duplicate bin number, 0 is returned.
  • The sixth value in the bins array is 370. There's 1 value in the data array that equals 370.
  • The seventh value in the bins array is FALSE, and is ignored.
  • The eighth value in the bins array is 360. There's 1 value in the data array that equals 360.
  • The ninth value in the bins array is 374. Since this is a duplicate bin number, 0 is returned.
  • The tenth value in the bins array is 373. There's 1 value in the data array that equals 373.

As you now know, the number of elements in the returned array is one more than the number of elements in bins array. This extra element counts the number of values in the data array that are greater than the highest bin number or interval. In this case, it's 375. Since no values exist in the data array that are grater than 375, 0 is returned. Notice that in this example there are no values in the data that exist within the bin intervals. The evaluation then becomes...

---> {3;2;0;0;1;1;0;1;0}
 
Upvote 0

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top