![]() |
INDIRECT
Hello folks,
I am quite confused by the behaviour of a INDIRECT formulae I created - a rather simple one that that returns a listing of text from a sheet called "customer list" (within the same workbook), depending on the result of a Vlookup formula. The the VLOOKUP returns a range, say A50:A54, and concatenating this with a sheet name 'customer list'! gives the range reference INDIRECT needs. My formulae as follows: =INDIRECT(CONCATENATE("'customer list'!",VLOOKUP(Front!$C$12,'2006 MCs'!$B$2:$L$21,11,FALSE))) I filled in this formula in cells A4 to A55 and was rather puzzled to see that the cells A4 to A49 had #VALUE!, but Cells A50 to A54 had the desired answers. Is it possible that the cells A4 always returns the first name in the range, A5 the second name and so on. Anything to clarify this welcome. -- Andrew |
INDIRECT
Hi
You are throughly wrong here! 1. VLOOKP never doesn't return any range. It returns a single value from a range - the first one matching the criteria. =VLOOKUP(SearchValue,LookupRange,ReturnCol,SearchN earest) SearchValue is the value the lookup us looking for in 1st column of LookupRange; LookupRange is the contignous range with search values column as leftmost, and it includes column with return values; ReturnColumn is an integer, which determines the relative position of return values column in LookupRange - search column number is 1; SearchNearest determines the behavior of VLOOKUP. When FALSE or 0, first exact match is searched for - when not found, an error is retutrned. Lookup range can be unsorted. When TRUE or 1, first nearest match is searched for. Lookup range must be sorted on search column - otherwise wrong result may be returned. 2. INDIRECT returns a range reference, which can be used as range parameter on other functions. Indirect uses a single string parameter, which can be read from some cell, or be calculated or entered directly. INDIRECT as single or top-level function doesn't return anything visible - except the return range is a single cell. Some examples. =SUM(INDIRECT("Sheet1!A1:A10")) It's same as =SUM(Sheet1!A1:A10); =SUM(INDIRECT("'" & $A$1 & "!'A1:A10")) It returns a sum of sells A1:A10 from sheet, which name is typed into cell A1 on sheet with formula; =INDIRECT("A1") It's same as =A1, and returns a value from cell A1 - because the renge returned by INDIRECT is a single cell. Maybe you start with telling us what do you want to get, and from which data. Then maybe somebody here gives you some solution. Arvi Laanemets "Rioville" wrote in message ... Hello folks, I am quite confused by the behaviour of a INDIRECT formulae I created - a rather simple one that that returns a listing of text from a sheet called "customer list" (within the same workbook), depending on the result of a Vlookup formula. The the VLOOKUP returns a range, say A50:A54, and concatenating this with a sheet name 'customer list'! gives the range reference INDIRECT needs. My formulae as follows: =INDIRECT(CONCATENATE("'customer list'!",VLOOKUP(Front!$C$12,'2006 MCs'!$B$2:$L$21,11,FALSE))) I filled in this formula in cells A4 to A55 and was rather puzzled to see that the cells A4 to A49 had #VALUE!, but Cells A50 to A54 had the desired answers. Is it possible that the cells A4 always returns the first name in the range, A5 the second name and so on. Anything to clarify this welcome. -- Andrew |
INDIRECT
Arvi,
I have two sheets in a workbook. First sheet (customer list) Column A contains customer names , Column B contains the Region each customer belongs to. All customer names belonging to a region are in contigous ranges. The second sheet is where the formula needs to be. I need a function will automatically extract the list of customer names when I enter the region name, so if I enter "Germany" the formula needs to return all customer names belonging to the Germany region. Ditto for other regions. Each region has a different number of customers. I attempted to do this by having VLOOKUP return a range (say, $A$4:$A$44), and using INDIRECT (concatenated with the sheet name) to return the customer names defined by the range. the INDIRECT formula is then copied down to fill the range with the correct customer names. This works when the indirect formula is in cells A4-A44, and also happens to reference the VLOOKUP range A4 to A44, but when the VLOOKUP references return another range, say $A$45 to $A$55 the indirect only works when filled in Cells A45 to A55. Am I missing something here? If there is another way, I would be most happy for your help. Thank you for reading. -- Andrew "Arvi Laanemets" wrote: Hi You are throughly wrong here! 1. VLOOKP never doesn't return any range. It returns a single value from a range - the first one matching the criteria. =VLOOKUP(SearchValue,LookupRange,ReturnCol,SearchN earest) SearchValue is the value the lookup us looking for in 1st column of LookupRange; LookupRange is the contignous range with search values column as leftmost, and it includes column with return values; ReturnColumn is an integer, which determines the relative position of return values column in LookupRange - search column number is 1; SearchNearest determines the behavior of VLOOKUP. When FALSE or 0, first exact match is searched for - when not found, an error is retutrned. Lookup range can be unsorted. When TRUE or 1, first nearest match is searched for. Lookup range must be sorted on search column - otherwise wrong result may be returned. 2. INDIRECT returns a range reference, which can be used as range parameter on other functions. Indirect uses a single string parameter, which can be read from some cell, or be calculated or entered directly. INDIRECT as single or top-level function doesn't return anything visible - except the return range is a single cell. Some examples. =SUM(INDIRECT("Sheet1!A1:A10")) It's same as =SUM(Sheet1!A1:A10); =SUM(INDIRECT("'" & $A$1 & "!'A1:A10")) It returns a sum of sells A1:A10 from sheet, which name is typed into cell A1 on sheet with formula; =INDIRECT("A1") It's same as =A1, and returns a value from cell A1 - because the renge returned by INDIRECT is a single cell. Maybe you start with telling us what do you want to get, and from which data. Then maybe somebody here gives you some solution. Arvi Laanemets "Rioville" wrote in message ... Hello folks, I am quite confused by the behaviour of a INDIRECT formulae I created - a rather simple one that that returns a listing of text from a sheet called "customer list" (within the same workbook), depending on the result of a Vlookup formula. The the VLOOKUP returns a range, say A50:A54, and concatenating this with a sheet name 'customer list'! gives the range reference INDIRECT needs. My formulae as follows: =INDIRECT(CONCATENATE("'customer list'!",VLOOKUP(Front!$C$12,'2006 MCs'!$B$2:$L$21,11,FALSE))) I filled in this formula in cells A4 to A55 and was rather puzzled to see that the cells A4 to A49 had #VALUE!, but Cells A50 to A54 had the desired answers. Is it possible that the cells A4 always returns the first name in the range, A5 the second name and so on. Anything to clarify this welcome. -- Andrew |
INDIRECT
Hi
Let's start having a sheet Customers, with column headers in row 1 ID, Customer, Region (NB! I added a column ID, so customer names are now in column B, and regions in column C) Into A2 enter the formula =IF(B2="","",C2&COUNTIF(C$2:C2,C2)) , and copy it down for some amount of rows (at least for entire table). Define a named range CustomersTbl=OFFSET(Customers!$A$1,1,,COUNTIF(Cust omers!$A:$A,"""")-1,3) Create a sheet Regions Into cell A2 enter the formula =IF(A$1="","",IF(ISERROR(VLOOKUP(A$1&(ROW()-1),CustomersTbl,2,0)),"",VLOOKUP (A$1&(ROW()-1),CustomersTbl,2,0))) , and copy to right and down for as much columns you think you'll have regions, and for as much rows you think max number of cistomers in any region will be. Now, whenever you enter region name into 1st row above range with formulas, the full list of customers from this region is displayed in this column. PS. On sheet Customers, you can hide the column ID now. Arvi Laanemets "Rioville" wrote in message ... Arvi, I have two sheets in a workbook. First sheet (customer list) Column A contains customer names , Column B contains the Region each customer belongs to. All customer names belonging to a region are in contigous ranges. The second sheet is where the formula needs to be. I need a function will automatically extract the list of customer names when I enter the region name, so if I enter "Germany" the formula needs to return all customer names belonging to the Germany region. Ditto for other regions. Each region has a different number of customers. I attempted to do this by having VLOOKUP return a range (say, $A$4:$A$44), and using INDIRECT (concatenated with the sheet name) to return the customer names defined by the range. the INDIRECT formula is then copied down to fill the range with the correct customer names. This works when the indirect formula is in cells A4-A44, and also happens to reference the VLOOKUP range A4 to A44, but when the VLOOKUP references return another range, say $A$45 to $A$55 the indirect only works when filled in Cells A45 to A55. Am I missing something here? If there is another way, I would be most happy for your help. Thank you for reading. -- Andrew "Arvi Laanemets" wrote: Hi You are throughly wrong here! 1. VLOOKP never doesn't return any range. It returns a single value from a range - the first one matching the criteria. =VLOOKUP(SearchValue,LookupRange,ReturnCol,SearchN earest) SearchValue is the value the lookup us looking for in 1st column of LookupRange; LookupRange is the contignous range with search values column as leftmost, and it includes column with return values; ReturnColumn is an integer, which determines the relative position of return values column in LookupRange - search column number is 1; SearchNearest determines the behavior of VLOOKUP. When FALSE or 0, first exact match is searched for - when not found, an error is retutrned. Lookup range can be unsorted. When TRUE or 1, first nearest match is searched for. Lookup range must be sorted on search column - otherwise wrong result may be returned. 2. INDIRECT returns a range reference, which can be used as range parameter on other functions. Indirect uses a single string parameter, which can be read from some cell, or be calculated or entered directly. INDIRECT as single or top-level function doesn't return anything visible - except the return range is a single cell. Some examples. =SUM(INDIRECT("Sheet1!A1:A10")) It's same as =SUM(Sheet1!A1:A10); =SUM(INDIRECT("'" & $A$1 & "!'A1:A10")) It returns a sum of sells A1:A10 from sheet, which name is typed into cell A1 on sheet with formula; =INDIRECT("A1") It's same as =A1, and returns a value from cell A1 - because the renge returned by INDIRECT is a single cell. Maybe you start with telling us what do you want to get, and from which data. Then maybe somebody here gives you some solution. Arvi Laanemets "Rioville" wrote in message ... Hello folks, I am quite confused by the behaviour of a INDIRECT formulae I created - a rather simple one that that returns a listing of text from a sheet called "customer list" (within the same workbook), depending on the result of a Vlookup formula. The the VLOOKUP returns a range, say A50:A54, and concatenating this with a sheet name 'customer list'! gives the range reference INDIRECT needs. My formulae as follows: =INDIRECT(CONCATENATE("'customer list'!",VLOOKUP(Front!$C$12,'2006 MCs'!$B$2:$L$21,11,FALSE))) I filled in this formula in cells A4 to A55 and was rather puzzled to see that the cells A4 to A49 had #VALUE!, but Cells A50 to A54 had the desired answers. Is it possible that the cells A4 always returns the first name in the range, A5 the second name and so on. Anything to clarify this welcome. -- Andrew |
INDIRECT
Works perfectly. Thanks so much.
-- Andrew "Arvi Laanemets" wrote: Hi Let's start having a sheet Customers, with column headers in row 1 ID, Customer, Region (NB! I added a column ID, so customer names are now in column B, and regions in column C) Into A2 enter the formula =IF(B2="","",C2&COUNTIF(C$2:C2,C2)) , and copy it down for some amount of rows (at least for entire table). Define a named range CustomersTbl=OFFSET(Customers!$A$1,1,,COUNTIF(Cust omers!$A:$A,"""")-1,3) Create a sheet Regions Into cell A2 enter the formula =IF(A$1="","",IF(ISERROR(VLOOKUP(A$1&(ROW()-1),CustomersTbl,2,0)),"",VLOOKUP (A$1&(ROW()-1),CustomersTbl,2,0))) , and copy to right and down for as much columns you think you'll have regions, and for as much rows you think max number of cistomers in any region will be. Now, whenever you enter region name into 1st row above range with formulas, the full list of customers from this region is displayed in this column. PS. On sheet Customers, you can hide the column ID now. Arvi Laanemets "Rioville" wrote in message ... Arvi, I have two sheets in a workbook. First sheet (customer list) Column A contains customer names , Column B contains the Region each customer belongs to. All customer names belonging to a region are in contigous ranges. The second sheet is where the formula needs to be. I need a function will automatically extract the list of customer names when I enter the region name, so if I enter "Germany" the formula needs to return all customer names belonging to the Germany region. Ditto for other regions. Each region has a different number of customers. I attempted to do this by having VLOOKUP return a range (say, $A$4:$A$44), and using INDIRECT (concatenated with the sheet name) to return the customer names defined by the range. the INDIRECT formula is then copied down to fill the range with the correct customer names. This works when the indirect formula is in cells A4-A44, and also happens to reference the VLOOKUP range A4 to A44, but when the VLOOKUP references return another range, say $A$45 to $A$55 the indirect only works when filled in Cells A45 to A55. Am I missing something here? If there is another way, I would be most happy for your help. Thank you for reading. -- Andrew "Arvi Laanemets" wrote: Hi You are throughly wrong here! 1. VLOOKP never doesn't return any range. It returns a single value from a range - the first one matching the criteria. =VLOOKUP(SearchValue,LookupRange,ReturnCol,SearchN earest) SearchValue is the value the lookup us looking for in 1st column of LookupRange; LookupRange is the contignous range with search values column as leftmost, and it includes column with return values; ReturnColumn is an integer, which determines the relative position of return values column in LookupRange - search column number is 1; SearchNearest determines the behavior of VLOOKUP. When FALSE or 0, first exact match is searched for - when not found, an error is retutrned. Lookup range can be unsorted. When TRUE or 1, first nearest match is searched for. Lookup range must be sorted on search column - otherwise wrong result may be returned. 2. INDIRECT returns a range reference, which can be used as range parameter on other functions. Indirect uses a single string parameter, which can be read from some cell, or be calculated or entered directly. INDIRECT as single or top-level function doesn't return anything visible - except the return range is a single cell. Some examples. =SUM(INDIRECT("Sheet1!A1:A10")) It's same as =SUM(Sheet1!A1:A10); =SUM(INDIRECT("'" & $A$1 & "!'A1:A10")) It returns a sum of sells A1:A10 from sheet, which name is typed into cell A1 on sheet with formula; =INDIRECT("A1") It's same as =A1, and returns a value from cell A1 - because the renge returned by INDIRECT is a single cell. Maybe you start with telling us what do you want to get, and from which data. Then maybe somebody here gives you some solution. Arvi Laanemets "Rioville" wrote in message ... Hello folks, I am quite confused by the behaviour of a INDIRECT formulae I created - a rather simple one that that returns a listing of text from a sheet called "customer list" (within the same workbook), depending on the result of a Vlookup formula. The the VLOOKUP returns a range, say A50:A54, and concatenating this with a sheet name 'customer list'! gives the range reference INDIRECT needs. My formulae as follows: =INDIRECT(CONCATENATE("'customer list'!",VLOOKUP(Front!$C$12,'2006 MCs'!$B$2:$L$21,11,FALSE))) I filled in this formula in cells A4 to A55 and was rather puzzled to see that the cells A4 to A49 had #VALUE!, but Cells A50 to A54 had the desired answers. Is it possible that the cells A4 always returns the first name in the range, A5 the second name and so on. Anything to clarify this welcome. -- Andrew |
All times are GMT +1. The time now is 06:53 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com