Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 22
Default Find Last Value

I have many entries describing sales events, and one of the columns in every
entry is quarter. I'd like to find where one quarter starts and where one
ends without doing any filtering or deleting.
For example, i have

___K___
1|Q1
2|Q1
3|Q1
4|Q1
5|Q1
6|Q2
7|Q2

I'd like to use a code that, in this example, would return row 5 as the last
Q1 value. Is this possible?
thanks in advance

comparini3000
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default Find Last Value

Simple enough

=MAX(IF(A1:A20="Q1",ROW(A1:A20)))

which is an array formula, it should be committed with Ctrl-Shift-Enter, not
just Enter.

To get the first row, change MAX to MIN

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"comparini3000" wrote in message
...
I have many entries describing sales events, and one of the columns in

every
entry is quarter. I'd like to find where one quarter starts and where one
ends without doing any filtering or deleting.
For example, i have

___K___
1|Q1
2|Q1
3|Q1
4|Q1
5|Q1
6|Q2
7|Q2

I'd like to use a code that, in this example, would return row 5 as the

last
Q1 value. Is this possible?
thanks in advance

comparini3000



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default Find Last Value

Give this a try...

Public Sub FindLast()
Dim rngFound As Range
Dim rngToSearch As Range

Set rngToSearch = Range("K2", Cells(Rows.Count, "K").End(xlUp))
Set rngFound = rngToSearch.Find(What:="Q1", _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchDirection:=xlPrevious)
If rngFound Is Nothing Then
MsgBox "Sorry... Not Found"
Else
MsgBox "Found on row " & rngFound.Row
End If

End Sub

--
HTH...

Jim Thomlinson


"comparini3000" wrote:

I have many entries describing sales events, and one of the columns in every
entry is quarter. I'd like to find where one quarter starts and where one
ends without doing any filtering or deleting.
For example, i have

___K___
1|Q1
2|Q1
3|Q1
4|Q1
5|Q1
6|Q2
7|Q2

I'd like to use a code that, in this example, would return row 5 as the last
Q1 value. Is this possible?
thanks in advance

comparini3000

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 22
Default Find Last Value

Mr. Phillips, thank you for your quick reply, the formula worked wonderfully.
However, I was looking for a VBA solution. How would I do that?

"Bob Phillips" wrote:

Simple enough

=MAX(IF(A1:A20="Q1",ROW(A1:A20)))

which is an array formula, it should be committed with Ctrl-Shift-Enter, not
just Enter.

To get the first row, change MAX to MIN

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 22
Default Find Last Value

That's excellent, it's exactly what I needed. Thank you for your help!

"Jim Thomlinson" wrote:

Give this a try...

Public Sub FindLast()
Dim rngFound As Range
Dim rngToSearch As Range

Set rngToSearch = Range("K2", Cells(Rows.Count, "K").End(xlUp))
Set rngFound = rngToSearch.Find(What:="Q1", _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchDirection:=xlPrevious)
If rngFound Is Nothing Then
MsgBox "Sorry... Not Found"
Else
MsgBox "Found on row " & rngFound.Row
End If

End Sub

--
HTH...

Jim Thomlinson


"comparini3000" wrote:

I have many entries describing sales events, and one of the columns in every
entry is quarter. I'd like to find where one quarter starts and where one
ends without doing any filtering or deleting.
For example, i have

___K___
1|Q1
2|Q1
3|Q1
4|Q1
5|Q1
6|Q2
7|Q2

I'd like to use a code that, in this example, would return row 5 as the last
Q1 value. Is this possible?
thanks in advance

comparini3000



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,593
Default Find Last Value

MsgBox ActiveSheet.Evaluate("MAX(IF(A1:A20=""Q1"",ROW(A1: A20)))")



--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"comparini3000" wrote in message
...
Mr. Phillips, thank you for your quick reply, the formula worked

wonderfully.
However, I was looking for a VBA solution. How would I do that?

"Bob Phillips" wrote:

Simple enough

=MAX(IF(A1:A20="Q1",ROW(A1:A20)))

which is an array formula, it should be committed with Ctrl-Shift-Enter,

not
just Enter.

To get the first row, change MAX to MIN

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)



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
Find First Non blank cell than find column header and return that value Silver Rose Excel Worksheet Functions 10 April 30th 07 05:56 PM
Despite data existing in Excel 2002 spreadsheet Find doesn't find AnnieB Excel Discussion (Misc queries) 1 June 16th 06 02:15 AM
find and delete duplicate entries in two columns or find and prin. campare 2 columns of numbers-find unique Excel Programming 1 November 24th 04 04:09 PM
find and delete text, find a 10-digit number and put it in a textbox Paul Excel Programming 3 November 16th 04 04:21 PM
backwards find function to find character in a string of text Ashleigh K. Excel Programming 1 January 14th 04 04:36 PM


All times are GMT +1. The time now is 03:49 PM.

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

About Us

"It's about Microsoft Excel"