Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 2
Default How can I use a VLOOKUP function to search a multi-page workbook?

I regularily use VLOOKUP but want to create a LOOKUP that will search all
pages of a workbook and return the required data. I am using a distinct
customer number that will only appear once.
  #2   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 4,339
Default How can I use a VLOOKUP function to search a multi-page workbo

Put this code in your "other w/book" (not "Control_Master_August_07" which
must be open) .

Function mvlookup(srchval, srchindex)
Dim sh As Worksheet
Dim srchrng As Range

Set wb = Workbooks("Control_Master_August_07")

For Each sh In wb.Worksheets
Set srchrng = sh.Range("C:AE")
res = Application.VLookup(srchval, srchrng, srchindex, 0)
If Not IsError(res) Then
mvlookup = res
Exit Function
End If
Next sh
mvlookup = ""
End Function


in say B2 put:

=MVLOOKUP(A2,29)

this will search on A2 value and return result in B2.

Copy down if/as required

HTH

"Chrisl147" wrote:

Hi

Looks very promising... Need to give you more detail I think as I'm very
new to UDFs:

I'm trying to return a value from a spreadsheet called "control master
august 07" and the sheets are for each working day "01-08", "02-08" etc. The
reference value is in column C

I will be in a different spreadsheet and the refence value will be in column
A.

I have tried to create the function, detailed below:

Function mvlookup(srchval, srchindex)
Dim sh As Worksheet
Dim srchrng As Range
For Each sh In CONTROLMASTER_AUGUST_07(1 - 8, 2 - 8, 3 - 8)
Set srchrng = sh.Range("C:AE")
res = Application.VLookup("A:A", "C:AE", 29, False)
If Not IsError(res) Then
mvlookup = res
Exit Function
End If
Next sh
mvlookup = ""
End Function

Thank-you for your help, this is way above me at the moment...

"Toppers" wrote:

Perhaps this UDF will help:

Function mvlookup(srchval, srchindex)
Dim sh As Worksheet
Dim srchrng As Range
For Each sh In Sheets(Array("Sheet1", "Sheet2", "Sheet3")) '<== change
Set srchrng = sh.Range("A:B") '<=== change range
res = Application.VLookup(srchval, srchrng, srchindex, 0)
If Not IsError(res) Then
mvlookup = res
Exit Function
End If
Next sh
mvlookup = ""
End Function

e.g in a cell put:

=MVLOOKUP("abc",2)

will find "abc" and return value from column B

"Chrisl147" wrote:

I regularily use VLOOKUP but want to create a LOOKUP that will search all
pages of a workbook and return the required data. I am using a distinct
customer number that will only appear once.

  #3   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 2
Default How can I use a VLOOKUP function to search a multi-page workbo

Hi

Looks very promising... Need to give you more detail I think as I'm very
new to UDFs:

I'm trying to return a value from a spreadsheet called "control master
august 07" and the sheets are for each working day "01-08", "02-08" etc. The
reference value is in column C

I will be in a different spreadsheet and the refence value will be in column
A.

I have tried to create the function, detailed below:

Function mvlookup(srchval, srchindex)
Dim sh As Worksheet
Dim srchrng As Range
For Each sh In CONTROLMASTER_AUGUST_07(1 - 8, 2 - 8, 3 - 8)
Set srchrng = sh.Range("C:AE")
res = Application.VLookup("A:A", "C:AE", 29, False)
If Not IsError(res) Then
mvlookup = res
Exit Function
End If
Next sh
mvlookup = ""
End Function

Thank-you for your help, this is way above me at the moment...

"Toppers" wrote:

Perhaps this UDF will help:

Function mvlookup(srchval, srchindex)
Dim sh As Worksheet
Dim srchrng As Range
For Each sh In Sheets(Array("Sheet1", "Sheet2", "Sheet3")) '<== change
Set srchrng = sh.Range("A:B") '<=== change range
res = Application.VLookup(srchval, srchrng, srchindex, 0)
If Not IsError(res) Then
mvlookup = res
Exit Function
End If
Next sh
mvlookup = ""
End Function

e.g in a cell put:

=MVLOOKUP("abc",2)

will find "abc" and return value from column B

"Chrisl147" wrote:

I regularily use VLOOKUP but want to create a LOOKUP that will search all
pages of a workbook and return the required data. I am using a distinct
customer number that will only appear once.

  #4   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 272
Default How can I use a VLOOKUP function to search a multi-page workbook?

You need workarounds to do 3D-lookups. One way is to define a name "Refs"
which refers to the list of references:

="'[CONTROLMASTER_AUGUST_07]"&TEXT(ROW($1:$31),"00")&"-08'!C1:AE999"

Then enter the lookup formula below in the other spreadsheet making sure to
use the same headings as in the table. Extend the formula by selecting the
range e.g. [A2:B999] and choosing Data Table Column Input Cell: A2 OK:

A B
1 No. Value
2 112 =LOOKUP(REPT("z",99),DGET(INDIRECT(Refs),29,A1:A2) &"")
3 234 =TABLE(,A2)
4 456 =TABLE(,A2)
....

"Chrisl147" wrote:

I regularily use VLOOKUP but want to create a LOOKUP that will search all
pages of a workbook and return the required data. I am using a distinct
customer number that will only appear once.

  #5   Report Post  
Posted to microsoft.public.excel.worksheet.functions
external usenet poster
 
Posts: 1,231
Default How can I use a VLOOKUP function to search a multi-page workbo

"Toppers" wrote...
Put this code in your "other w/book" (not "Control_Master_August_07" which
must be open) .

Function mvlookup(srchval, srchindex)
Dim sh As Worksheet
Dim srchrng As Range

Set wb = Workbooks("Control_Master_August_07")

For Each sh In wb.Worksheets
Set srchrng = sh.Range("C:AE")
res = Application.VLookup(srchval, srchrng, srchindex, 0)
If Not IsError(res) Then
mvlookup = res
Exit Function
End If
Next sh
mvlookup = ""
End Function

....

More delightful hard-coding.

This doesn't require udfs if one's willing to use volatile functions. The
following array formula would work.

=VLOOKUP(val,INDIRECT("'"&IF(wbname<"","["&wbname&"]","")&INDEX(wslst,
MATCH(TRUE,COUNTIF(INDIRECT("'"&IF(wbname<"","["&wbname&"]","")&wslst
&IF(rng<"","'!"&rng,"")),val)0,0))&IF(rng<"","' !"&rng,"")),col,0)

where val is the lookup value, wbname is an optional common workbook name,
wslst is a list of worksheet names, rng is an optional common range address,
and col is the column index in the table from which to return the result.

If only worksheets within the workbook containing this formula need to be
searched, leave wbname blank. If different worksheets in different workbooks
need to be searched, leave wbname blank and include the workbook names with
worksheet names in wslst. If different ranges would need to be searched in
different worksheets, leave rng blank and include the range addresses with
worksheet names in wslst. For example, with wbname and rng both blank and
wslst containing

[foo.xls]A'!A2:D21
[bar.xls]B'!X99:AA2000
[ugh.xls]C'!IS10000:IV50000

(yes, with single quotes before the exclamation points), the formula would
search each in turn for val.

As for the udf approach, might as well make it general by adding an array
argument that would hold the textrefs for the ranges to be searched in
sequence.


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
How can I use a VLOOKUP function to search a multi-page workbook? Toppers Excel Worksheet Functions 0 August 17th 07 01:46 AM
Vlookup & search function help VBA Noob Excel Worksheet Functions 6 June 24th 06 12:37 AM
Get header only on first page of multi page excel file betwms Excel Discussion (Misc queries) 3 March 29th 06 05:47 PM
VLookup function to search an entire workbook liseladele Excel Worksheet Functions 0 November 10th 05 12:35 AM
multi page copy Jon Excel Discussion (Misc queries) 0 March 22nd 05 04:13 PM


All times are GMT +1. The time now is 04:40 AM.

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"