Good day, I have googled the life out of this and I am sure it is so simple. I am trying to find the reference in coloumn A (which are letters) after a 2D lookup in a table of random numbers. The 2D lookup is working fine but I have tried many formula's to get the reference letter in the first coloumn to no avail. ANY help would be greatly appreciated. Tried to re-create the table as I can't upload pics.
My formula is =VLOOKUP(E34,B4:M29,MATCH(E32,B2:M2))
I have built another formula =INDEX(A2:M29,MATCH(H34,B4:B29,0),MATCH(H32,B2:M2,0)) which I thought would work but returns the wrong value. I think I have to nest a INDEX in a INDEX?
Really not sure - please HELP!
As far as I understand Your question: the formula is working well but if you use a comma as the last parameter then it will find the Exact match. as you said your reference contains letters so the last parameter (just a comma) is not necessary here. Any way i have tried to draw a figure as you explained. And the Reference you are trying to get: it is not got by a formula, once you have supplied the reference then you can get the reference values using a Data Validation List option and choose correct letters. More over for which column do you want to retrieve the value for your reference? for this you can again use Data Validation List for Column Numbers (Names etc). The formula I used is: =VLOOKUP(E34,B4:M29,MATCH(E32,B2:M2),) in E36.
If this answer is not enough, then you should explain your question again in detail. Thanks.
Related
I have two lists of products in Excel. Each list will be of varying length each month.
Is there a way to combine the two lists into a third list, with the second list being underneath the first?
I would like to do this avoiding macros.
I image this could be done using Dynamic Arrays, but I can't figure it out.
Please see an example below:
Thank you so much in advance.
I have had this problem before and used this tutorial to help me. I attach the example sheet also, which provides the formula that may work for your problem.
See the image below for cell references - then try this:
=IFERROR(INDEX($B$3:$B$7, ROWS(H2:$H$2)), IFERROR(INDEX($D$3:$D$4, ROWS(H2:$H$2)-ROWS($B$3:$B$7)), IFERROR(INDEX($F$3:$F$6, ROWS(H2:$H$2)-ROWS($B$3:$B$7)-ROWS($D$3:$D$4)), "")))
I have managed to find a solution that works for me, where the lists are of variable length.
Using a similar scenario to Mardi-Louise's answer, I am using the following formula in cell F3, and then dragging down:
=IF(B3<>"",B3,OFFSET($D$3,ROW()-COUNTA($B$3:$B$7),0))
Explanation:
So long as List 1 is not finished, it takes the value from List 1.
Once List 1 is finished, it begins at the top of List 2, and uses an offset to move down.
I'm late to the party, but for anyone still looking for this there's (now) a function for this in Excel 365: vstack(array1;array2;...)
Here is Microsoft's page on it
With the arrays as columns in tables you'll get dynamic lengths. It's also possible to combine vstack() with for example unique().
I benefitted from Answer 2 with slightly different syntax. The ROW() function provides an output based on the absolute cell address when an output based on the relative position of the list is actually more generally applicable. I found the following syntax works better to reference the output of ROW() to the cell above the top cell of range D3:D8:
=IF(B3<>"",B3,OFFSET($D$2,ROW()-ROW($D$2)-COUNTA($B$3:$B$7),0))
Additionally, the COUNTA function can provide inconsistent results when cells in the range are not based on simple data but on the output of formulas which can be equal to 0 or blank without actually being empty. In that case COUNTIF often works better such as:
=IF(B3<>"",B3,OFFSET($D$2,ROW()-ROW($D$2)-COUNTIF($B$3:$B$7,"<>"&0),0))
I have a long list of part numbers where I need to be able to lookup and retrieve information on them.
These parts can have several alternative part numbers. I have figured out how to get the data returned if my data table only shows one of the possibly part numbers.
The issue is that I want it to be able to look up the columns to find a matching value.
As in the picture below for example. 5-E26 is the equivalent to E5-25. So if I input 5-E26 in the cell, I want it to continue searching to find the value in B7, and return the data as done A4 and A5.
Is this possible to do with Vlookup? Or is there a smarter method for it?
I struggle to fully understand how your data works but here is a possibility:
So the translated version of the formula I used in G2:
=INDEX($D$1:$D$5,AGGREGATE(15,3,((($A$2:$D$5=F2)/($A$2:$D$5=F2))*ROW($A$2:$A$5)),1))
You could also try (in my case):
=INDEX($D$1:$D$5,SUMPRODUCT(($A$2:$D$5=F2)*ROW($A$2:$D$5)))
I am trying to do an Offset/Match or Index/Match type formula to find the value that matches a cell. The problem is the way the sheet is laid out.
For an example I am trying to match the Job No. to the Project Name under the appropriate client.
I would like to keep it in this format because the project list will grow.
This sheet is where my lists are kept.
*This is just being created hence why the Project lists are tiny.
This sheet will be an ever expanding list of stuff that needs to be done.
You can see the OFFSET formula below that I tried. Is there another way of doing this or can this be done with a simple formula (instead of a long IF statement for each Client)?
=OFFSET(D2,MATCH(D3,Lists!F3:P10,0),MATCH(J2,Lists!F3:P3,0))
Thanks for any feedback.
=VLOOKUP(D3,OFFSET(Lists!$E$4:$E$10,,MATCH(C3,Lists!$F$2:$P$2,0),,2),2,0)
It seems a bit more awkward to do it with INDEX/MATCH because you have to repeat the column lookup, but here it is
IFERROR(INDEX(INDEX($F$4:$P$10,,MATCH(C3,$F$2:$O$2,0)+1),MATCH(D3,INDEX($F$4:$P$10,,MATCH(C3,$F$2:$O$2,0)),0)),"")
I have two spreadsheets. I'm trying to use VLOOKUP, but it simply is not being nice. The cell that's suppose to be updated does not.
-Spreadsheet A has indices that need to be paired with Spreadsheet B indices.
-Then I need to get the corresponding value to that indices. Those values are one cell to the right of the indices in Spreadsheet B.
-The value in Spreadsheet B then needs to be placed in its appropriate cell back in Spreadsheet A.
If someone could help that would be great and ... fabulous. If you need more details or clarification let me know. I have a feeling it might be my using of Table Name across spreadsheets as the culprit for it not working properly.
Try using and Index Match combo function
Index('Column/array with return value',MATCH('Value to match','Array to find the value',0-For an exact match),'column number of the Column/Array to look in')
I am not a fan of VLOOKUP as I almost always find errors with it. There are plenty of indexMatch examples too on here and Google.
I was wondering if you could help me with a request. I used a custom script that dynamically creates one half of a cell reference, and I use a ROW formula to calculate the other half of the reference. The problem is, I'm trying to use that generated reference in a SUM calculation, but I am having issues using the correct syntax.
In essence I'm trying to create a formula that I can drag down 112 columns and save myself having to do the same thing multiple times. The script I made uses the following formula to create the column letter:
(averageTimeCalculator(U88) - U88 is just a field I'm using for the sake of testing this formula out, and it works perfectly. The second half of the reference is created by just taking the row of whatever the formula itself is on, so in this case:
ROW(Z88)
Using CONCAT I put the two together "=(CONCAT(averageTimeCalculator(U88),ROW(Z88)))" which gives me the result: F88. What I'm trying to do with that reference is find out the sum of all the values on that row, leading up to it, so in essence I'm trying to create a formula that represents =SUM(A88:F88), in a way that I can drag it from A:3 to A:114), but everything I have tried to this point has thrown some sort of parsing error.
I've been throwing myself at this problem for a few hours now, using variants of the following syntax:
=SUM((C88):CONCAT(averageTimeCalculator(U88),ROW(A88)))
but I can't get it to work :( can anyone help?
You can use SUM(INDIRECT(A89)) where cell A89 would contain the text "A88:F88".