# Finding 2nd Maximum In An Array

Nov 12, 2008Very simple problem. I need the second highest value in an array. Max gives me highest. Min gives me lowest. I need a kind of a MAX2 function.

View 3 RepliesVery simple problem. I need the second highest value in an array. Max gives me highest. Min gives me lowest. I need a kind of a MAX2 function.

View 3 RepliesADVERTISEMENT

I need a formula in order to find each time the maximum value.

View 3 Replies View Relatedi have a table same this in 5000 rows and 10 columns that are years from 1998 to 2007. ISO2 is two digit names of countries.

ISO2 D1998 D1999 D2000 D2001 D2002 D2003 D2004 D2005 D2006 D2007

CL 135 147 180 192 48 629 494 137 135 359

CL 132 145 177 190 45 623 491 134 132 356

CL 129 141 174 186 42 617 488 131 129 353

EC 126 139 171 184 39 611 485 128 126 350

EC 123 135 168 180 36 605 482 125 123 347

EC 120 133 165 178 33 599 479 122 120 344

KH 117 129 162 174 30 593 476 119 117 341

KH 114 127 159 172 27 587 473 116 114 338

KH 111 123 156 168 24 581 470 113 111 335

PH 108 121 153 166 21 575 467 110 108 332

PH 105 117 150 162 18 569 464 107 105 329

PH 102 115 147 160 15 563 461 104 102 326

PH 99 111 144 156 12 557 458 101 99 323

VE 96 109 141 154 9 551 455 98 96 320

i want a macro to advance filter column A and make a unique list of it and then find the maximum value of each country in column A in 10 years. for example final table for country "CL" must be same this

ISO2 D1998 D1999 D2000 D2001 D2002 D2003 D2004 D2005 D2006 D2007

CL 135 147 180 192 629 629 494 137 135 359

I have to sets of data, each in a sheet with the first column as identical for both sheets. Sheet2 contains two series of 6 rows, each for a specific first column (""B Code").

Now I want to find the values of "TCT-C" column in sheet1 (for each range of 6 rows that the "B Code" is match) which corresponds to the row number that "TCT" in sheet2 is maximum (again for 6 rows). The point is, I need to shift to another series of 6 rows in sheet2 once the "B Code" does not match.

I have a row of data with the cells I want to find a MAX for are separated from each other:

a1=300 d1=500 g1=800 j1=10,000

I want to find the MAX value for a1,d1,g1,j1, but exclude any value over 1000. So instead of =MAX(a1,d1,g1,j1) returning 10,000, =???(???) will return the next highest max of 800.

I have a range of overtime data. I want to list the maximum occurrence of first 10 overtime data ( Like 3200,2950.2300....etc) Thereafter from the results obtained I need to know the cell address of the employee corresponding to the results obtained, i.e XYZ, ABC.....

A B

Employee Name OT Amount

1. XYZ 3200.00

23. ABC 2950.00

35. WER 2300.00

Say I have 2 columns that in basic form look like this:

Column A Column B

Jan 1

Feb 0

Mar 7

Apr 4

May 15

Jun 2

Jul 5

Aug 4

First I want to look up the max value in this column. This is easy =max(b1:b8)

Then I want to know the minimum value that occurs after the maximum value. Thus the answer would be 2.

Problem:

Range A2:C10 contains the login and logout times of various ID's.

Each ID could log in and out a number of times a day.

How could we find the first time a specific ID logged in and the last time that same ID logged out?

Solution:

For each of the ID's in range A2:A10, enter two Array Formulas.

To find the first login time (Column B) enter the following formula:

{=1/MAX((A14=$A$2:$A$10)*($B$2:$B$10

To find the last logout time (Column C) enter the following formula:

{=MAX(($A$2:$A$10=A14)*($C$2:$C$10))}

ID______Login Time______Logout Time

1 ______02:40___________03:10

2 ______00:15___________03:20

1 ______06:20___________09:30

3 ______09:14___________11:05

4 ______11:00___________19:30

2 ______04:05___________06:55

3 ______12:08___________17:17

1 ______10:00___________16:20

2 ______08:12___________12:33

ID______First Login Time______Last Logout Time

1 ______2:40__________________16:20

2 ______0:15__________________12:33

3 ______9:14__________________17:17

4 ______11:00_________________19:30

I am now working on an excel spreadsheet which will automatically update every day so that one row will be added on the top of the sheet everyday.i.e.

A1 Date Price

A2 (New row added,date) (New row added,price)

A3 16/1/2013 5.5

A4 15/1/2013 5.6

A5 14/1/2013 5.45

... ...

Assuming that I am looking for maximum value of the column "Price", since max() cannot be applied to variable range, is there other method I could useto look for the most updated maximum value of column "price"?

selecting a range under a condition. I'd like to write a macro to find the maximum value for a certain ID. The number of ID rows (left column) is unknown so can't say range("A1:A5"). Then have the ID and max number shifted to another column. Maybe use 'rows.count' ?

Eg.

4009 5

4009 9

4009 8

4009 4

4005 7

4005 3

4005 9

3008 10

3008 11

I am writing a formula for finding a maximum out of three average values. The cells that will be populated with data are A1 to A5; B1 to B5; C1 to C5. The final cell where I want to write the formula needs to show the maximum of the three averages (average of data in each row).

The difficulty is that sometimes only the A and B rows are populated (and sometime only A row is populated) and if B and/or C are blank, the formula fails and shows "#DIV/0!".

How can I write so that if C is blank, then evaluate only A and B data. And If both B and C are blank, then just display the average of row A.

This should be simple to do but I can't figure it out. I have a database that lists operating room numbers in one column and the length of the surgeries performed in those rooms in another column.

I need a formula that will give me the longest OR time for a given room. For example the room numbers are in column A and the OR times are in Column B. I've tried something like

I’m trying to figure out how to show the highest occurrence of text in 10 cells which are not next to each other. Some of the cells will also be blank And the other thing is if there is a draw e.g. 5 2Z and 5 1Z I'd like it to show that, either with a word e.g. "DRAW" or anything really other than just putting whichever of the 2 "notes" in it feels like

Attached is a spreadsheet (all other data deleted) that shows what I am wanting to do – I have typed the results I am after directly in to the cells in columns BE & BF – BE will need some kind of countif, but when I try that is says I have too many arguments! I have to leave the columns in between blank in this case as they have other info in them, which is really annoying as if those 10 cells were contiguous then the formula

i have the volume of a reservoir in column A for lets say, 2 years, with monthly data (so 24 numbers in my list)

I also have some variables that feed into this list such as rainfall (fixed), and population (i.e water use, which i can manually change)

if i increase the population too much, the volume of the reservoir will at certain times of the year, fall into negative digits.

what i'm looking for, is a cell which works out the maximum value (in whole numbers) for my population, without any of the numbers in the reservoir volume list falling below zero.

i have product group,product name and the statistics. I'll use an example of students with score. I have these set of data:

A B C D

1 Student Name Score Sum

2 Student1 Anna 48 80=Sumif(A:A,A2,C:C)

3 Student1 Anna 32 80

4 Student2 Tom 30 80

5 Student2 Tom 30 80

6 Student2 Tom 20 80

7 Student3 June 55 60

8 Student3 June 1 60

9 Student3 June 4 60

Now we have 2 students with tied highest scores with 80 Scores. Naturally i want the rank to be as follow: Top1 Anna since she has the highest score "48", and Top2 Tom, and Top3 June.

The problem is, the score data can vary and Top3 can probably have the highest score and he still didnt make the highest score collectively. And there will also going to be other situations as well because im working on a very large data set, and not these 3 students.

the max score is tied, and since im making another column with sum scores, the data is going to be redundant, and hopefully theres a formula to ignore this.

I'm writing a macro that will pull a set of dates from a worksheet and put them into an array. Then I want to find the max date in the array (most likely using some sort of sorting method).

The code below is how I'm putting the dates into an array. I'm not sure if using the date data type is best. I can't tell how it will sort the information. Is there an easy way to find the maximum of an array of dates?

Dim Date_Array() As Date

If Sheets("Sheet1"). Range("N" & i) = "Date" Then

j = j + 1

Redim Preserve Date_Array(j)

I want to search a data set and return the maximum value based on 3 criteria using (array) formulas.

Say the data set contained the following:

Row 1: column headings (date, name, data 1, data 2, data 3, etc)

Column A: dates

Column B: names

Columns C through G: data

I want to find the maximum value for a given name, in a certain month, and a nominated data column (e.g. data 2). For example:

Month = June

Name = Geoff

Data column = Data 2

Max value = ????

All of the data in the data columns is numeric.

What I'm trying to do is generate a 2D array of values in VBA from data in a spreadsheet. (Array is not pulled from sheet)

What I would like to do next is look at each row or column of the 2D array and find the max value. I've tried using the worksheetfunction.MAX to no avail.

How do i find the length of an array, which has been declared as

VB : Dim abcarray() As Variant

i have a sheet in template i use in preparing bid packages for electrical installations.it relates to locating in a (building) grid the locations of the motor control (mcp) and power panels (cdp).my desire at this point is to find a way to local a unique value (mcp or cdp) in a 2d grid and then return the column and row names from the same grid. eventually this information will populate a table of all the mcp's and cdp's with their locations.

my sticking point appears to be finding a unique value in a 2d table. this value can be anywhere in the table, not just the first column.

i've tried the lookups and index/match. match fails when i extend the lookup_array beyond the first column.

not sure if this is even possible.

I have an array that I want to go through several times. I want to try something like this:

[Code] ......

I cant just say "If Val < 7 Then" because it will spit out the string where "Val" is.

I know that I could create another variable like so:

[Code] .....

but this doesnt seem like an elegent solution...

I am aware that you can use Match to find the position of an entry in an array, and the following code works as expected, returning an index of 4:

View 2 Replies View RelatedI have list of strings to be searched in column A2 to A150 (A1 has column title). The array that needs to be searched is in B2 to AG1000 (B1 to AG1 has column title). I want each string in column A to be searched in the full array. If match is found the corresponding column title (B1 or C1 and so.) and cell address needs to written to a new result columns in AY and AZ. it should work for duplicates as well i.e. the string can be in all the columns of array from B to AG. and all of them needs to be written to result column.

View 9 Replies View RelatedI have been trying to set up a macro to find the Minimum and Maximum values from an array of temperatures for painting... so far, partially successful.

The problems I am having are that the values have 1 decimal place and can be anywhere between 22.7 to -1.4. When they come they are put on the spreadsheet, the MinTemp can be 10.0 and MaxTemp 9.9, totally reversed.

Dim Info(2000, 2) As String

Dim MonthValue(31, 9) As Variant

Dim Working1 As Date

Dim I As Integer

Dim J As Integer

Dim Tot As Integer

[code]....

Is there a way to find data in an array similar to the way match, index or vlookup is used for data in cells of the spreadsheet?

Example, if I have a 2 dimensional array:

1 apple

2 orange

3 pear

4 banana

5 grape

and I want to know if the word "banana" exists in the second column of the array, is there code that would determine if it was in there at all, and is there code that would determine that it was item 4 in that array?

I'd like to know if exist a procedure/ function to find a argument in an array and return the index/address of the argument at the array.

For example, I have a array contaning a list of products. i'd to create a function that finds the index of a particular/list of products, feeded as arguments, and returns the indexes locations.

NameTime InTime OutAlan08300930Alan10001030Alan12301630Tony11301230Alan09450950Tony10301115

I would like to find the minimum time in and maximum time out for each person. The data type of Time In and Time Out are general.

I.E

NameTime InTime OutAlan08301630Tony10301230

Therefore, I would like to know what function in excel will enable me to perform such task. Furthermore, can this function use with VBA?

I'm setting up an Excel (2000) sheet to record the results of a competition at my local photographic society. I'm trying to make it as simple as possible to fill out by the people using it, so have shaded the cells that require the user to put data in. I'll post a screenshot of the sheet, which is named "DPI", to make it easier:

(EDIT) screenshot removed - see attached file in post #3 below instead

I use one row for each member entering the competition. Each member can submit up to three photographs for judging. The names in B5:B30 are tied to the member number in A5:A30, and pulled in with VLOOKUP from a separate sheet containing all the club's members. The names in this example are, obviously, fakes. ;-)

The three blocks are to enter the image titles and associated scores. I have a range called "scores" which is defined as =DPI!$D$5:$D$30,DPI!$G$5:$G$30,DPI!$J$5:$J$30

The rank columns are simply calculated using the RANK function. E.g. the formula in E5 is =IF(ISBLANK(A5),"",RANK(D5,scores,0))

The cells at the top are calculated using the LARGE function upon the defined range "scores" (although they could equally use the SMALL function on the rank columsn instead).

The bit I'm stuck at is what I want it to say along the top. eg: "Leg 1 Winner: 30 is {insert image title} by {insert member name}"

Using the winner as an example, I want to take the winning score shown in D1, find it in the named array "scores", and return the image title to the left of it. Obviously I can't use VLOOKUP as the data is to the left of the lookup value as well as being in multiple columns. I wanted to use OFFSET to return the value of the column to the left, but to do that I need to pick up the reference of the cell containing "30" i.e. the winning score shown in cell D1.

How can I find this cell reference? Or is there a better way? I thought about the old MATCH/INDEX function, but INDEX doesn't seem to work very well with data in non-contiguous arrays as I'd have to specify which block to look in.

Once I can get the image title returned I hopefully sholdn't have any bother extending it to return the member name from a fixed column, but I can't figure out how to get the reference of the cells in the "scores" array that contain the winning scores shown in D1, D2 and D3.

I've defined a string array and would want to use it as a basis for a vlookup. Is it possible to find the elements of the array directly in the worksheet ?So far I've got :

[Code] .....

I have an array that is 60x100 (column x row).

I'm trying to search for a value in that array and return the value on the same row, but shifted to the right one column.

Example: If my value is found in D63, I want to return the value in E63.

I've been messing with Index, Match, and Offset, but I can't get anything working.

Copyrights 2005-15 www.BigResource.com, All rights reserved