Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Morning Biff. Thanks for the reply. Getting and error. Here's what you
recommended: =INDEX(Rng2,SMALL(IF((Rng1=$Z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) this is my exact formula (array entered): =INDEX('PO Detail'!D$1:D$500,SMALL(IF(('PO Detail'!B$1:B$500=$B$3)*('PO Detail'!K$1:K$5000),ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW('PO Detail'!B87))) it looks like we're mutiplying rng3 x corresponding value in rng1. one of the issues is rng1 is text. is there a way to just check to see if rng3 is greater than "0". i tried, but now luck. any thoughts? g "Biff" wrote: i only want the result delivered if the value in (rng3) is "0" Try this: (array entered) =INDEX(Rng2,SMALL(IF((Rng1=$z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... biff - you nailed it kid. got the result i was looking for in terms of being able to have a variable length array. here's my next question: lets assume my formula reads as follows: =INDEX(Rng2,SMALL(IF(Rng1=$z$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) ...and my data looks like this: a(rng2) b(rng1) c (rng4) 1 y1 p1 5 2 x1 p2 1 3 y1 p3 0 4 z1 p4 3 5 q1 p5 4 if my $z$1 value is "y1"...the formula returns 2 data sets: y1 p1 y1 p3 the thing is, i only want the result delivered if the value in (rng3) is "0" can you help me? thanks in advance. g "Biff" wrote: You can use dynamic ranges that automatically adjust as the size of your data set changes. See instructions he http://contextures.com/xlNames01.html#Dynamic Then the formula would be something like this: (array entered) =INDEX(Rng2,SMALL(IF(Rng1=$D$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... Biff, I'm using your formula: =INDEX($B$1:$B$190,SMALL(IF($A$1:$A$190=$D$1,ROW($ A$1:$A$190)),ROW(A1))) My question is this: Can the ranges $B$1:$B$190 and A$1:$A$190 be named ranges with variable amounts of data? I export data out of our accounting and want to use the formula, but the number of data points changes. It seems that the function only works if all the cells between $b$1 and $b$190 have data. Am i missing something? thanks in advance, greg "Biff" wrote: Hi! this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. The sheet does not need to be sorted and it doesn't matter if there are dupe return values. Post the *EXACT* formula that you tried. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. have you got anything else? Pivot table or filter Biff "MetricsShiva" wrote in message ... this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. Otherwise i get either incorrect values returned or errors.. basically, i have a sheet listing jobs scheduled by managers. I want to be able to look up the manager's name and return a list of all the job's scheduled and the dates they were scheduled on. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. Thanks for the response, but have you got anything else? "Biff" wrote: Hi! The basic formula is something like this: Entered as an array using the key combo of CTRL,SHIFT,ENTER: =INDEX(B$1:B$10,SMALL(IF(A$1:A$10=lookup_value,ROW ($1:$10)),ROW(1:1))) Then copy down. Where column A contains the lookup_value and column B contains the values to be returned. Need more specific details to offer a more robust suggestion. Biff "MetricsShiva" wrote in message ... i want to look up a name that occurs several times in one column of a spreadsheet and return corresponding values from each row the name occurs on. Vlookup returns only one value. How can I get multiple values? |
#2
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Hi
Your problem lies in the last part of the formula. The argument for the SMALL() function that Biff proposed was ROW(A1) which would be 1, but would be stepped up to 2, 3 etc. as you copied down. In this posting you are using ROW('PO Detail'!B87) and in your previous posting ROW('PO Detail'!B87) Change to ROW(A1) and it should work. (N.B. It doesn't need to have any sheet reference, as it is not being used to refer to any particular cell, it is just a method of getting the smallest, 2nd smallest etc.) -- Regards Roger Govier "gfactor" wrote in message ... Morning Biff. Thanks for the reply. Getting and error. Here's what you recommended: =INDEX(Rng2,SMALL(IF((Rng1=$Z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) this is my exact formula (array entered): =INDEX('PO Detail'!D$1:D$500,SMALL(IF(('PO Detail'!B$1:B$500=$B$3)*('PO Detail'!K$1:K$5000),ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW('PO Detail'!B87))) it looks like we're mutiplying rng3 x corresponding value in rng1. one of the issues is rng1 is text. is there a way to just check to see if rng3 is greater than "0". i tried, but now luck. any thoughts? g "Biff" wrote: i only want the result delivered if the value in (rng3) is "0" Try this: (array entered) =INDEX(Rng2,SMALL(IF((Rng1=$z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... biff - you nailed it kid. got the result i was looking for in terms of being able to have a variable length array. here's my next question: lets assume my formula reads as follows: =INDEX(Rng2,SMALL(IF(Rng1=$z$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) ...and my data looks like this: a(rng2) b(rng1) c (rng4) 1 y1 p1 5 2 x1 p2 1 3 y1 p3 0 4 z1 p4 3 5 q1 p5 4 if my $z$1 value is "y1"...the formula returns 2 data sets: y1 p1 y1 p3 the thing is, i only want the result delivered if the value in (rng3) is "0" can you help me? thanks in advance. g "Biff" wrote: You can use dynamic ranges that automatically adjust as the size of your data set changes. See instructions he http://contextures.com/xlNames01.html#Dynamic Then the formula would be something like this: (array entered) =INDEX(Rng2,SMALL(IF(Rng1=$D$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... Biff, I'm using your formula: =INDEX($B$1:$B$190,SMALL(IF($A$1:$A$190=$D$1,ROW($ A$1:$A$190)),ROW(A1))) My question is this: Can the ranges $B$1:$B$190 and A$1:$A$190 be named ranges with variable amounts of data? I export data out of our accounting and want to use the formula, but the number of data points changes. It seems that the function only works if all the cells between $b$1 and $b$190 have data. Am i missing something? thanks in advance, greg "Biff" wrote: Hi! this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. The sheet does not need to be sorted and it doesn't matter if there are dupe return values. Post the *EXACT* formula that you tried. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. have you got anything else? Pivot table or filter Biff "MetricsShiva" wrote in message ... this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. Otherwise i get either incorrect values returned or errors.. basically, i have a sheet listing jobs scheduled by managers. I want to be able to look up the manager's name and return a list of all the job's scheduled and the dates they were scheduled on. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. Thanks for the response, but have you got anything else? "Biff" wrote: Hi! The basic formula is something like this: Entered as an array using the key combo of CTRL,SHIFT,ENTER: =INDEX(B$1:B$10,SMALL(IF(A$1:A$10=lookup_value,ROW ($1:$10)),ROW(1:1))) Then copy down. Where column A contains the lookup_value and column B contains the values to be returned. Need more specific details to offer a more robust suggestion. Biff "MetricsShiva" wrote in message ... i want to look up a name that occurs several times in one column of a spreadsheet and return corresponding values from each row the name occurs on. Vlookup returns only one value. How can I get multiple values? |
#3
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
thanks for the input roger. the b87 ref was due to the fact that i was
copying the formula from the 87th row in my list. however it did set it back to a1 and i'm showing below the formula from the 1st row in my range. however i am still getting results of items for which the value in G$1:G$500 corresponding to rng2 is 0. =INDEX('PO Detail'!D$1:D$500,SMALL(IF(('PO Detail'!B$1:B$500=$B$3)*('PO Detail'!G$1:G$5000),ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW(A1))) thanks in advance for any help. g "Roger Govier" wrote: Hi Your problem lies in the last part of the formula. The argument for the SMALL() function that Biff proposed was ROW(A1) which would be 1, but would be stepped up to 2, 3 etc. as you copied down. In this posting you are using ROW('PO Detail'!B87) and in your previous posting ROW('PO Detail'!B87) Change to ROW(A1) and it should work. (N.B. It doesn't need to have any sheet reference, as it is not being used to refer to any particular cell, it is just a method of getting the smallest, 2nd smallest etc.) -- Regards Roger Govier "gfactor" wrote in message ... Morning Biff. Thanks for the reply. Getting and error. Here's what you recommended: =INDEX(Rng2,SMALL(IF((Rng1=$Z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) this is my exact formula (array entered): =INDEX('PO Detail'!D$1:D$500,SMALL(IF(('PO Detail'!B$1:B$500=$B$3)*('PO Detail'!K$1:K$5000),ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW('PO Detail'!B87))) it looks like we're mutiplying rng3 x corresponding value in rng1. one of the issues is rng1 is text. is there a way to just check to see if rng3 is greater than "0". i tried, but now luck. any thoughts? g "Biff" wrote: i only want the result delivered if the value in (rng3) is "0" Try this: (array entered) =INDEX(Rng2,SMALL(IF((Rng1=$z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... biff - you nailed it kid. got the result i was looking for in terms of being able to have a variable length array. here's my next question: lets assume my formula reads as follows: =INDEX(Rng2,SMALL(IF(Rng1=$z$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) ...and my data looks like this: a(rng2) b(rng1) c (rng4) 1 y1 p1 5 2 x1 p2 1 3 y1 p3 0 4 z1 p4 3 5 q1 p5 4 if my $z$1 value is "y1"...the formula returns 2 data sets: y1 p1 y1 p3 the thing is, i only want the result delivered if the value in (rng3) is "0" can you help me? thanks in advance. g "Biff" wrote: You can use dynamic ranges that automatically adjust as the size of your data set changes. See instructions he http://contextures.com/xlNames01.html#Dynamic Then the formula would be something like this: (array entered) =INDEX(Rng2,SMALL(IF(Rng1=$D$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... Biff, I'm using your formula: =INDEX($B$1:$B$190,SMALL(IF($A$1:$A$190=$D$1,ROW($ A$1:$A$190)),ROW(A1))) My question is this: Can the ranges $B$1:$B$190 and A$1:$A$190 be named ranges with variable amounts of data? I export data out of our accounting and want to use the formula, but the number of data points changes. It seems that the function only works if all the cells between $b$1 and $b$190 have data. Am i missing something? thanks in advance, greg "Biff" wrote: Hi! this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. The sheet does not need to be sorted and it doesn't matter if there are dupe return values. Post the *EXACT* formula that you tried. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. have you got anything else? Pivot table or filter Biff "MetricsShiva" wrote in message ... this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. Otherwise i get either incorrect values returned or errors.. basically, i have a sheet listing jobs scheduled by managers. I want to be able to look up the manager's name and return a list of all the job's scheduled and the dates they were scheduled on. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. Thanks for the response, but have you got anything else? "Biff" wrote: Hi! The basic formula is something like this: Entered as an array using the key combo of CTRL,SHIFT,ENTER: =INDEX(B$1:B$10,SMALL(IF(A$1:A$10=lookup_value,ROW ($1:$10)),ROW(1:1))) Then copy down. Where column A contains the lookup_value and column B contains the values to be returned. Need more specific details to offer a more robust suggestion. Biff "MetricsShiva" wrote in message ... i want to look up a name that occurs several times in one column of a spreadsheet and return corresponding values from each row the name occurs on. Vlookup returns only one value. How can I get multiple values? |
#4
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Hi
Biff posted =INDEX(Rng2,SMALL(IF((Rng1=$z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) ^^^^^ You posted =INDEX('PO Detail'!D$1:D$500, SMALL(IF(('PO Detail'!B$1:B$500=$B$3)* ('PO Detail'!G$1:G$5000), ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW(A1))) You therefore seem to have =INDEX(Rng2,SMALL(IF((Rng1=$z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng1)))),ROW(A1))) ^^^^^ This should not affect the result as it is only a way of getting an array of results corresponding with the size of your table. It certainly doesn't affect results with the original sample of data you posted, which works perfectly with Biff's formula using rng1 or rng2 I don't know what your full set of data contains. I presume $B$3 does contain the value you are looking for. It should work OK. Did you use Ctrl+Shift+Enter to make it an array formula when you amended? You say you are getting an error, what error is it coming up with? -- Regards Roger Govier "gfactor" wrote in message ... thanks for the input roger. the b87 ref was due to the fact that i was copying the formula from the 87th row in my list. however it did set it back to a1 and i'm showing below the formula from the 1st row in my range. however i am still getting results of items for which the value in G$1:G$500 corresponding to rng2 is 0. =INDEX('PO Detail'!D$1:D$500,SMALL(IF(('PO Detail'!B$1:B$500=$B$3)*('PO Detail'!G$1:G$5000),ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW(A1))) thanks in advance for any help. g "Roger Govier" wrote: Hi Your problem lies in the last part of the formula. The argument for the SMALL() function that Biff proposed was ROW(A1) which would be 1, but would be stepped up to 2, 3 etc. as you copied down. In this posting you are using ROW('PO Detail'!B87) and in your previous posting ROW('PO Detail'!B87) Change to ROW(A1) and it should work. (N.B. It doesn't need to have any sheet reference, as it is not being used to refer to any particular cell, it is just a method of getting the smallest, 2nd smallest etc.) -- Regards Roger Govier "gfactor" wrote in message ... Morning Biff. Thanks for the reply. Getting and error. Here's what you recommended: =INDEX(Rng2,SMALL(IF((Rng1=$Z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) this is my exact formula (array entered): =INDEX('PO Detail'!D$1:D$500,SMALL(IF(('PO Detail'!B$1:B$500=$B$3)*('PO Detail'!K$1:K$5000),ROW(INDIRECT("1:"&ROWS('PO Detail'!B$1:B$500)))),ROW('PO Detail'!B87))) it looks like we're mutiplying rng3 x corresponding value in rng1. one of the issues is rng1 is text. is there a way to just check to see if rng3 is greater than "0". i tried, but now luck. any thoughts? g "Biff" wrote: i only want the result delivered if the value in (rng3) is "0" Try this: (array entered) =INDEX(Rng2,SMALL(IF((Rng1=$z$1)*(Rng30),ROW(INDI RECT("1:"&ROWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... biff - you nailed it kid. got the result i was looking for in terms of being able to have a variable length array. here's my next question: lets assume my formula reads as follows: =INDEX(Rng2,SMALL(IF(Rng1=$z$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) ...and my data looks like this: a(rng2) b(rng1) c (rng4) 1 y1 p1 5 2 x1 p2 1 3 y1 p3 0 4 z1 p4 3 5 q1 p5 4 if my $z$1 value is "y1"...the formula returns 2 data sets: y1 p1 y1 p3 the thing is, i only want the result delivered if the value in (rng3) is "0" can you help me? thanks in advance. g "Biff" wrote: You can use dynamic ranges that automatically adjust as the size of your data set changes. See instructions he http://contextures.com/xlNames01.html#Dynamic Then the formula would be something like this: (array entered) =INDEX(Rng2,SMALL(IF(Rng1=$D$1,ROW(INDIRECT("1:"&R OWS(Rng2)))),ROW(A1))) Biff "gfactor" wrote in message ... Biff, I'm using your formula: =INDEX($B$1:$B$190,SMALL(IF($A$1:$A$190=$D$1,ROW($ A$1:$A$190)),ROW(A1))) My question is this: Can the ranges $B$1:$B$190 and A$1:$A$190 be named ranges with variable amounts of data? I export data out of our accounting and want to use the formula, but the number of data points changes. It seems that the function only works if all the cells between $b$1 and $b$190 have data. Am i missing something? thanks in advance, greg "Biff" wrote: Hi! this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. The sheet does not need to be sorted and it doesn't matter if there are dupe return values. Post the *EXACT* formula that you tried. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. have you got anything else? Pivot table or filter Biff "MetricsShiva" wrote in message ... this formula works if the sheet is sorted by the value i'm looking up and if there are no duplicates in the field I want returned. Otherwise i get either incorrect values returned or errors.. basically, i have a sheet listing jobs scheduled by managers. I want to be able to look up the manager's name and return a list of all the job's scheduled and the dates they were scheduled on. I then want to include this in a weekly dashboard for the 50+ managers i'm monitoring. Thanks for the response, but have you got anything else? "Biff" wrote: Hi! The basic formula is something like this: Entered as an array using the key combo of CTRL,SHIFT,ENTER: =INDEX(B$1:B$10,SMALL(IF(A$1:A$10=lookup_value,ROW ($1:$10)),ROW(1:1))) Then copy down. Where column A contains the lookup_value and column B contains the values to be returned. Need more specific details to offer a more robust suggestion. Biff "MetricsShiva" wrote in message ... i want to look up a name that occurs several times in one column of a spreadsheet and return corresponding values from each row the name occurs on. Vlookup returns only one value. How can I get multiple values? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Huge problem with "if" formula's | Excel Discussion (Misc queries) | |||
Return range of values on an "IF" statement | Excel Worksheet Functions | |||
How do I return the cell address of the largest of a set of values | Excel Discussion (Misc queries) | |||
Adding multiple cells, return specific values | Excel Worksheet Functions | |||
Lookup values in a list and return multiple rows of data | Excel Worksheet Functions |