Vlookup with Exact match - excel

I am trying to do Exact match using Vlookup but it is not working with this formula.
IF(EXACT(A4,VLOOKUP(A4,'names'B:B,1,FALSE))=TRUE,VLOOKUP(A4,'names'B:B,2,FALSE),"False")
I have a tab which looks like this:
I have one more tab with in same spread sheet called names and looks like this:
I am trying to find the exact match of name from tab 1 with names and display True/False values in column D of the tab 1
The result that I am expecting is this:
Could any one please help me?

=IFERROR(EXACT(INDEX($A$6:$A$8,MATCH(A3,$A$6:$A$8,0)),A3),FALSE)

I saw you beat me to it, but i thought would be nice if you can exctend the list by dragging it downards.
=IFERROR(EXACT(INDEX(Names!A$1:A20;MATCH(Sheet1!A18;Names!A$1:A20;0));A18);"")

Use one of the following formulas in at the top of your True/False column and copy down:
=ISNUMBER(AGGREGATE(15,6,FIND(A1,Names!$B$3:$B$5),1))
Adjust your ranges to suit your data. Note the use of the Sheet name before the ! to indicate that a range of cells is on a different sheet. Other formulas will work as well as noted with other answer to your question.

Related

Why using worksheet name in formula makes it fail after sorting?

I'm looking for any documentation or explanation for something that happens in Excel and I think it's a bug, unless somebody can throw some light in this.
Recreate this fail is very easy:
The above data is in a worksheet named Hoja1.
First column are typed values.
Second column is a formula like this: =Hoja1!A2 and drag down
Third column is a formula like this: =A2 and drag down.
I know the formula in second column wouldn't be the proper way (no need to reference the worksheet name if you are referencing cells in same worksheet), but it's needed to check this behaviour.
Now, just sort data using first column as criteria (order from min to max). I was expecting formulas would still show the most left cell value, but see what happens:
I was not expecting that at all. I tought that because I've used relative references in =Hoja1!A2, it would be increasing row number. but not at all. Formulas look like this:
Solution to this is easy, I must use clearly notation excluding worksheet name when referencing cells in same worksheet, but this behaviour is wrong for me.
I've search on Google, Microsoft Forums and also SO and found nothing about this behaviour when referencing cells in same worksheet using worksheet name.
As I said, I know the solution, but I was expecting somebody share any info about this issue.
That's all. Thanks in advance.
This is a known bug/feature/"by design" - eg see:
https://answers.microsoft.com/en-us/msoffice/forum/all/excel-table-with-formulas-wont-sort-properly/56a70898-bee5-4226-8d96-72f05f49eb11

How to search on Excel to return multiple fields that match a single value

I have a table in Excel that has a Data set with multiple values against a single data set.
I need to pull out the data that is against each data set. I have tried using a VLOOKUP however that is only returning the first one in the list. It does not return the others that match the same criteria.
This is my dataset. As can be seen, the vlookup is only returning the first set of data that matches the query. Ideally I need it to return Red, Black and White for the query of John:
Appreciate it someone can give me some help on this!
Try this - you'll have to fill in the blank cells with the matching names.
=IF(ISERROR(INDEX($A$1:$B$8,SMALL(IF($A$1:$A$8=$F$2,ROW($A$1:$A$8)),ROW(1:1)),2)),"",INDEX($A$1:$B$8,SMALL(IF($A$1:$A$8=$F$2,ROW($A$1:$A$8)),ROW(1:1)),2))
Make sure to auto-fill the rows below and use Ctrl-Shift-Enter when you put in the formula.
There's definitely a more elegant way, but this is what I came up with:
=IFERROR(IF(AND(ISBLANK(F2),G1=""),"",IF(OR(INDIRECT(CONCATENATE("A",MATCH(INDEX(B:B,MATCH($F$2,A:A)+ROW(1:1)-1),B:B)))="",INDIRECT(CONCATENATE("A",MATCH(INDEX(B:B,MATCH($F$2,A:A)+ROW(1:1)-1),B:B)))=$F$2),INDEX(B:B,MATCH($F$2,A:A)+ROW(1:1)-1),"")),"")
If you copy it to G2 and drag it down it should work.
IF you are not opposed to generating a working column, or filling in the spaces for the names then the following solution should work for you.
STEP 1
In order for this solution to work there can be no spaces in the name list. This can be achieved by generating a list with no spaced in another column and working with that information, or you could copy that column and paste value over the first. I created a working list in this example in Column D. In D2 I placed the following formula and copied down as required:
=IF(A2="",D1,A2)
It assumes the list does not start with a blank.
Step 2
Define what you are looking for. I used E2 to enter the value (name) that was being searched for. I used the following formula F2 and copied down to get the results.
=IFERROR(INDEX(B:B,AGGREGATE(15,6,ROW($D$2:$D$7)/($D$2:$D$7=$E$2),ROW(A1))),"")

Look up multiple values in a list and sort them in a new sheet

I have a data sheet that contains 9 columns corresponding to a name. But the names are repeated. So I want to create new sheets for all names and filter their data from the data sheet. The sheets must be updated when any changes are made on the data sheet.
I tried VLOOKUP but had some various problems, and it didn't work well for me. I've found a way that may help, but it's prepared for Excel. ( https://fiveminutelessons.com/learn-microsoft-excel/use-index-lookup-multiple-values-list )
In OpenOffice ROW(1:1) doesn't give a result. Dragging as an array also doesn't change the cells in the formula. So are there any alternative ways to solve this problem? (OpenOffice solutions are preferred).
The example from the link in the question almost works in LibreOffice. To fix it, instead of ROW(1:1), use ROW($A$1:$A$6).
I am not sure what ROW(1:1) does in Excel, and I could not find an explanation online. In Calc, ROW($A$1:$A$6) returns an array of 1 column x 6 rows: {1;2;3;4;5;6}.
So here is the full formula using the example.
=IF(ISERROR(INDEX($A$2:$C$7,SMALL(IF($A$2:$A$7=$A$9,ROW($A$2:$A$7)),ROW($A$1:$A$6))-1,3)),"",INDEX($A$2:$C$7,SMALL(IF($A$2:$A$7=$A$9,ROW($A$2:$A$7)),ROW($A$1:$A$6))-1,3))
Be sure to enter it as an array formula with Ctrl+Shift+Enter

Using nesting vlookup formulas for use in automation code

I am trying to write a formula that uses different vlookups depending on whether the formulas produce errors or not. I have 3 tabs, each with 3 columns.the first two columns contain values that are in the vlookup, with the third colum containing the value I want to find. Basically i want a formula that will use different vlookups depending on whether the lookup value is found in teh first tab or the second . Below is the formula i am working with. It works to bring in values from Sheet1 into Sheet3, but doesnt work when the values are in Sheet2. Also will be inserting this formula into vba code for automation use.
=IF(OR(ISERROR(VLOOKUP(B2,Sheet1!B2:C19,2,FALSE)),ISBLANK(VLOOKUP(Sheet3!B2,Sheet1!B1:C19,2,FALSE))),IF(OR(ISERROR(VLOOKUP(Sheet3!A2,Sheet1!A1:C19,3,FALSE)),ISBLANK(VLOOKUP(Sheet3!A2,Sheet1!A1:C19,3,FALSE))),IF(OR(ISERROR(VLOOKUP(Sheet3!B2,Sheet2!B1:C21,2,FALSE)),ISBLANK(VLOOKUP(Sheet3!B2,Sheet2!B1:C21,2,FALSE))),IF(OR((ISERROR(VLOOKUP(Sheet3!A2,Sheet2!A1:C21,3,FALSE))),ISBLANK(VLOOKUP(Sheet3!A2,Sheet2!A1:C21,3,FALSE))),"non",VLOOKUP(Sheet3!A2,Sheet2!A1:C21,3,FALSE)),VLOOKUP(Sheet3!B2,Sheet2!B1:C21,2,FALSE)),VLOOKUP(Sheet3!A2,Sheet1!A1:C19,3,FALSE)),VLOOKUP(Sheet3!B2,Sheet1!B1:C19,2,FALSE))
it returns the value sI am looking for up until the lookup values start occuring in Sheet2. At that point it shows me "non".
Any help would be greatly appreciated! Thanks
Your first VLOOKUP does not reference "Sheet3".
I think The below equation does what you are looking to do (assumes you are on Sheet3).
=IF(IFERROR(VLOOKUP($B$1,Sheet1!A:C,3,FALSE),"")="",IF(IFERROR(VLOOKUP($B$1,Sheet1!B:C,2,FALSE),"")="",IF(IFERROR(VLOOKUP($B$2,Sheet2!B:C,2,FALSE),"")="",IF(IFERROR(VLOOKUP($B$2,Sheet2!A:C,3,FALSE),"")="","nan",VLOOKUP($B$2,Sheet2!A:C,3,FALSE)),VLOOKUP($B$2,Sheet2!B:C,2,FALSE)),VLOOKUP($B$1,Sheet1!B:C,2,FALSE)),VLOOKUP($B$1,Sheet1!A:C,3,FALSE))

How to find the matches between two columns in Excel sheet?

In Microsoft Excel 2010, I have an excel sheet that has two columns Z and AG. Z has 11400 rows and AG has 3000 rows. I want to find the matches between both of them in a new column. So how to do that?
I tried the following formula:
=IF(MAX(COUNTIF($AG$2:$AG$114000,$Z$2:$Z$114000))>1,"Duplicate","Nope")
But it did not work correctly with me because it gave me "Nope" for all the rows, however i have many matches between both of them.
So could you please help me with this?
If the results can be sparse (empty rows in result set), then I would use vlookups. The formula would look something like this:
=vlookup(ag2,$z$2:$z$114000,1,false)
Copy that down to every entry in az and it should give you the matches.
Maybe it would be easier to use conditional formatting. For example you could apply a formula for conditional formatting that is something like this:
=COUNTIF($AG$1:$AG$114000,Z1)>1
You could set the formatting to be highlight the cell, and then copy the formatting down column Z. I think that should work. User this website for reference: http://www.ozgrid.com/Excel/highlight-duplicates.htm
Try to use this formula ...it works good
A - FIRST COLUMN C IS ANOTHER COLUMN B IS EMPTY COLUMN WHERE YOU WANT TO POPULATE THE COMMON DATA
=if(ISERROR(MATCH(A1,C1....C30,0)),""A1)

Resources