Rank Calculation (with Correction) In Array Formula
Nov 9, 2007
I'm trying to calculate the sum of rank vlaues in an array formula (required for a Mann-Whitney U-test calc). For example, I have the results of a survey quesiton (1-5 rating) with particpant groups of Sales, Marketing & Other. I want to sum the Ranks of the data points that come from Sales or Marketing (but not Other). The added complexity is in the need to add in the Rank correction value to account for ties.
The conditional arrays are the tricky part. I'm very close, but the array formula is still including the Other values. If I delete those data points the formula works great. For those with strong stomachs, I've copied my latest formula below.
In A1 have two words, say "first" and "second" as two lines entered by pressing Alt+Enter after typing the first word. The requirement is remove this formating OR to get these two words separately in single cells. ie B1=First & C1=second.
I have this Formula in a excel sheet =IF(AND(COUNT(F12;G12)=2;G12<F12);G12-F12;IF(AND(COUNT(F12;G12)=2;G12>F12);ABS(F12-G12);""))
My problem is that when the result is 0 it just leaves a blank cell without a 0. Can i correct this so that when the result is 0 it will actually show a 0 in the cell? I can´t put a 0 in the end of the formula because then it shows zeroes in all the cells without information aswell.
I am trying to present a 10X10 Matrix Range (A1:J10) full with UNIQUE INTEGER random numbers. I thought to use an Single Dimension Array (100 deep) and fill it with the Rnd() Function.
Then, I thought to check the RANK of each element of that Array and transfer it to 100 cells (10X10) in the Sheet (assume A21:J30) with the help of 2 nested loops.
My problem is: How to find the Rank of each element within ARRAY1. Is there a way to refer to an Array as to a Range in a Worksheet. (I do not want to transfer 100 values from the Array to the Sheet - I rather prefer to check the Rank WITHIN(!) the Array).
Option Base 1
Sub MiKe() Set AWF = Application.WorksheetFunction H = 10 V = 10 Redim Array1(H * V) For CL = 1 To H * V Array1(CL) = Rnd() Next For HC = 1 To H For VC = 1 To V.........................
MAX(IF(MOD(ROW(F3:F9),2)=0,F3:F9)) returns 203 and IF(MOD(ROW(F3:F9),2)=0,F3:F9,E1) returns {0;47;0;203;0;"A";0} when you press F9.
If I change the range to exclude the non-numeric value I get the same error (it shouldn't matter according to the help file as non-numeric values are ignored).
I am trying to rank records from multiple sections of a single array. Since there are over 100 sections I want to use a formula. Using the MATCH function I have the first row for each section of the array (Col D below). The psuedo code of what I'm trying to do is:
RANK(B1,Bfirst row of section:Bfirst row of next section -1)
Example (results in Column C):
A B C D 1 West 100 3 1 2 West 150 1 4 3 West 125 2 4 East 50 3 5 East 75 2 5 East 140 1
I will also need to increment the section as I complete each section of the array. Am I trying to do too much in a single cell??
I am working on two spreadsheets, one we shall call Target Sheet and the other Reference Sheet.
On the target sheet, I have a set of 200 geographic coordinates longitude and latitude (in decimal degrees). Each pair of coordinates coresponds to a geographic site.
On the reference sheet, I have a set of 900 geographic coordinates longitude and latitude (in decimal degrees). Each pair of coordinates coresponds to a geographic site. Note that of the 900, 200 are the same from target sheet, other 700 are different sites.
Using the spherical law of cosines, I can calculate the distance between a set of coordinates on target sheet agianst a set of coordinates on reference sheet. This allows me to see the distance from one geographic site, to the other. This was easy. The formula I use is as follows: ....
Dim zima As Range Dim Col As Long On Error Resume Next Set zima = Application.InputBox("Select column to paste to", Type:=8) On Error GoTo 0 If zima Is Nothing Then Exit Sub
[code]....
Where in the formula C[-7], I need this to line up with the column that I selected via the InputBox. If I select column L then the -7 needs to change to +2. OR would there be a better way to write the formula in VBA?
I recently made a formula of net sales contribution (sales per product category/total sales). For weeks 1.2008 to 30.2008. But I have several product categories. I would like near the value of the formula (not in another cell!) to insert a rank of these contributions. I d love to have the rank inside a parenthesis() near the percentage.
Here is the format
NET SALES CONTRIBUTION PER PRODUCT HIERARCHY 239.200740.200741.2007 COM RETAIL MEDIA0,03%0,73%0,22% DTM STORAGE MEDIA0,00%0,06%0,00%
i rank some thing stock 25 A B c D rank style qty 1 st1 10 for d i need go to rank 1 first then qty 10 2 st2 5 then 2 then 3 till 25 (stock ) after it comes 0 5 st3 4 4 st4 3 3 st5 6
I want to find the rank of a year that falls between the start date and end date. For e.g.
Start date : 1/1/2005
End date : 10/31/2014
Target Date: 12/20/2009
Using year(start date)-year(end date), I get the number of years but how to evaluate the answer in a cell to get the result = 5 (my desired answer as 2005 through 2009 = 5 years).
I would like to rank the values without the Zero's. Something like the example below. Where the digits are being ranked and the negatives without ranking the 0's....
a formula to rank a set of data ? The smallest data will be rank 1 and the highest will have the last rank. this range of data has some spaces in between, that needs to be ignored but should not be deleted. I have attached a spreadsheet stating the case.
I have a rank formula that is seemingly erroring out on certain cells - indiscriminately. I have tried and tried to figure this out for myself but this is beyond my knowledge.
Only on some cells is the rank not working and returning a "-" (the error result).
I want the rank to use absolute numbers, so that it will rank according to variance or percentage (regardless of +/-). I am also using another cell (R1) to tell the rank what column to use.
As you can see there are a few entries, both + & -, that are not being included in the rank - for reasons beyond me.
I am preparing a daily report available in sheet1 with the actual input in sheet2 generated through a tool.
The report contain three columns i.e. total cases, Total correction done and Not corrected. From the total cases on a specific date, I need to calculate how many correction have been done and how many are pending.
E.g. 01 January 2013=5 cases are uploaded in the tool.
on 02 January 2013, it was observed that 3 cases were corrected and 2 are pending But 9 cases cases are uploaded on the same day in the tool .
So Total correction done (C3)=3 Not corrected(D3)= 11
Sub startrd3_click() Range("B5:AY64").Select Selection.Sort Key1:=Range("B5"), Order1:=xlDescending, Key2:=Range("C5") _ , Order2:=xlDescending, Key3:=Range("E5"), Order3:=xlDescending, Header _ :=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _ , DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _ xlSortNormal ' ERROR CHECKING HAPPENS HERE TO MAKE SURE PEOPLE HAVE NOT PLAYED EACH OTHER BEFORE Columns("J:W").Select Selection.EntireColumn.Hidden = True Range("I4").Select End Sub
If any of you gamers out there are familiar with the Swiss Pairing System, the goal of this sheet is to perform the pairing functions based on results. The goal of swiss pairing is to partner folks up based on win loss records, however, the players can never play each othe more than once. What i am wondering is how to create the vb code required to make sure the pairings are unique while keeping the rules of swiss pairing together.
I am building a football stat database which I am looking to put in an individual sheet which will search the other 20 sheets, collate the information and then display a top 5 ranking in each area. For example, this is our setup for the data:
Screenshot 2014-03-12 21.56.18.jpg
So what I want to to is have a separate sheet which will have a section for say over 1.5 goals %. The formula would go and retrieve all of the % results for each individual team. Then it would rank the 5 best teams and display the team name in the first cell and the % in the other cell.
i am trying to work out how to use the rank formula to rank numbers in column B and keep them in unison with Column A.
So Column A has say 5 1's with column B having different scores then continuing under 1 in A is 2 and so on is there a way to continue the ranking formula without manually changing the cell ranges?
so =rank(B1,$B$1:$B$7,1) but can i do that if A =1 and then A=2 etc ? so if A=1,rank(B1,$B$1:$B$7,1)
I had tried ranking formula to rank employees on some cirteria it was working, but if there is any tie between two employees then the next rank is not displaying for example in Ach Rank : rank 5 is missing because there is tie is between two employees is rank 4. Request your suggestion and help on this for overcoming the issue.
Formula used for ranking : =IF(B2>=75%,RANK(B2,$B$2:$B$41,1)-COUNTIF($B$2:$B$41,"
I am currently working on a football spreadsheet ranking players based on their fitness performance scores. For example, there are 14 persons on Offensive Line. I need all their test scores ranked out of 14. However, if there is a blank, I still need the test scores to be ranked out of 14. As of right now, I have cheated, and inputted a random number to bypass the blank:
=IF($G12>10, 0,RANK($G12, $G$12:$G$25,0))
But, this now affects my average of the fitness testing scores for that position. This could be avoided if I could find a way around my first problem.
I'm having problem with ranking results (ascending) with similar values e.g. values 1, 2, 2 and 4 fails by use of Rank-formula (rank: 1, 2, #N/A and 4) as value 2 appears twice.
I need to rank the top 3 names for each location based on gender (see sample data table below).
My spreadhseet has been setup using dynamic named ranges ("Size", "Name", "Gender", "Location" and "Score") using the formula "Size"=MATCH("zzzzz",'Sheet1'!$A:$A) and then "Name" =OFFSET('Sheet1'!$A$2,0,0,Size), and so on for "Gender", "Location" and "Score".
Is there a way to design an array rank formula using the dynamic named ranges to return the name associated with the highest score for "M"s in location "N"? I want to be able to edit the formula so I can chose which rank to display (e.g. 3rd, 7th, etc).
I've been playing with the following but can't get it to work