Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default conditional MAX associated row data

I am struggling with the following MS-Excel formula. In the data that
follows I want to retrieve the NAME of the person who achieved the
highest test SCORE where the DIFFICULTY rating exceeded 60. From the
data below, I would expect to receive the name "Nate" from the 5th
row.

NAME DIFFICULTY SCORE
Nate 55 78
Sara 62 77
Sara 58 79
Nate 64 79
Sara 59 84

I've discovered that I can retrieve the relevant score (79) with the
following formula, but the same does not work for retreiving the text
value in column A. When I convert the formula to return column A
instead of C, I get the value "0" instead of "Nate."
=MAX(IF($B$2:$B$999960,$C$2:$C$9999)) /* enter formula then press
shift_control_enter */

Thanks for any help.

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default conditional MAX associated row data

One way (array-entered:CTRL-SHIFT-ENTER or CMD-RETURN):

=INDEX(A2:A6,MATCH(MAX((B2:B6=60)*C2:C6),(B2:B6= 60)*C2:C6,FALSE))

In article .com,
"toolbox" wrote:

I am struggling with the following MS-Excel formula. In the data that
follows I want to retrieve the NAME of the person who achieved the
highest test SCORE where the DIFFICULTY rating exceeded 60. From the
data below, I would expect to receive the name "Nate" from the 5th
row.

NAME DIFFICULTY SCORE
Nate 55 78
Sara 62 77
Sara 58 79
Nate 64 79
Sara 59 84

I've discovered that I can retrieve the relevant score (79) with the
following formula, but the same does not work for retreiving the text
value in column A. When I convert the formula to return column A
instead of C, I get the value "0" instead of "Nate."
=MAX(IF($B$2:$B$999960,$C$2:$C$9999)) /* enter formula then press
shift_control_enter */

Thanks for any help.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default conditional MAX associated row data

Correction, should be rather than = in both places

In article ,
JE McGimpsey wrote:

One way (array-entered:CTRL-SHIFT-ENTER or CMD-RETURN):

=INDEX(A2:A6,MATCH(MAX((B2:B6=60)*C2:C6),(B2:B6= 60)*C2:C6,FALSE))

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2
Default conditional MAX associated row data


Thanks so much for your reply JE. The formula you provided works
great for me, but I have encountered one additional problem. The
formula contains the range "C2:C6", which is the current number of
rows in my table. I expect to add new rows to my table frequently.
However, if I alter the forumla to include rows that do not exist yet,
then the formula produces an error. Because the number of rows is
hardcoded in this formula, I would need to update the formula each
time I add a new row of data to the table. Can you think of a way to
either make the formula calculate the number of data rows to look at,
or to alter the formula so that it does not produce an error if it
encounters a blank row?

/* Work great assuming my last data is in row 6 */
=INDEX(A2:A6,MATCH(MAX((B2:B6=60)*C2:C6),(B2:B6= 60)*C2:C6,FALSE))

/* Produces an error when no data exists in rows 7 through 9999 */
=INDEX(A2:A6,MATCH(MAX((B2:B6=60)*C2:C9999),
(B2:B6=60)*C2:C9999,FALSE))



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default conditional MAX associated row data

All the arrays should have the same number of rows:

=INDEX(A2:A9999, MATCH(MAX((B2:B9999=60)*C2:C9999),
(B2:B9999=60)*C2:C9999, FALSE))

In article om,
"toolbox" wrote:

Thanks so much for your reply JE. The formula you provided works
great for me, but I have encountered one additional problem. The
formula contains the range "C2:C6", which is the current number of
rows in my table. I expect to add new rows to my table frequently.
However, if I alter the forumla to include rows that do not exist yet,
then the formula produces an error. Because the number of rows is
hardcoded in this formula, I would need to update the formula each
time I add a new row of data to the table. Can you think of a way to
either make the formula calculate the number of data rows to look at,
or to alter the formula so that it does not produce an error if it
encounters a blank row?

/* Work great assuming my last data is in row 6 */
=INDEX(A2:A6,MATCH(MAX((B2:B6=60)*C2:C6),(B2:B6= 60)*C2:C6,FALSE))

/* Produces an error when no data exists in rows 7 through 9999 */
=INDEX(A2:A6,MATCH(MAX((B2:B6=60)*C2:C9999),
(B2:B6=60)*C2:C9999,FALSE))

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
need help with conditional data Alok Excel Worksheet Functions 1 September 19th 08 01:00 PM
Conditional Data Validation evoxfan Excel Worksheet Functions 4 September 19th 08 12:13 AM
Conditional data Valerian Excel Worksheet Functions 5 March 27th 06 12:33 AM
conditional data validation RickS Excel Worksheet Functions 6 December 16th 05 01:11 PM
Conditional Formatting that will display conditional data BrainFart Excel Worksheet Functions 1 September 13th 05 05:45 PM


All times are GMT +1. The time now is 10:33 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"