Compare two columns and export unique values - excel

Ok, I have a master list of customer names on sheet 3, column c. On sheet 1, column c, I type the names of the customers I have contacted. I want sheet 2, column c, to show a list of the names of customers that I haven't contacted yet. And I need it to update each time I type a name into sheet 1 that matches a name on sheet three.

The easiest way is with is to create a table on each sheet, sort it, then use IF, ISERROR and MATCH function to show duplicates. Here is a tutorial.
HTH,
M

Populate Sheet2 C1 and down with the following formula:
=IFERROR(IF(VLOOKUP(Sheet3!C1,Sheet1!C$1:C$10,1,0)=Sheet3!C1,""),Sheet3!C1).
As with user3654439's answer, which is good BTW, this will create a column that includes blanks which can be filtered out if desired. There is no need to make a table nor sort the data to get the formula to work. Also in the part of the formula Sheet1!C$1:C$10 the 10could be changed to match the length of the list of customers that you intend to contact.

Related

Using SUMPRODUCT on column found by lookup

I have a sheet which has the following properties where Column A is item name, and Column B is item build price (computed).
I have second sheet which has the build information for the items, which has 1st column is the components, 2nd is the price per component, and each column after is the quantity of components needed to make item which is named in row 1
What I am wanting to do is to in sheet 1 have the calculated cost to make in column C. I tried doing various sumproducts formulas, like
=SUMPRODUCT((BlueprintInfo!B:B)*(BlueprintInfo!C:BB)*(BlueprintInfo!C1:BB1=A3))
but it either doesn't work OR I get excel ran out of resources. Any ideas how to make this work?
thanks
You could use an INDEX/MATCH within your SUMPRODUCT. Adjust the ranges as needed.
=SUMPRODUCT(BlueprintInfo!$B$3:$B$6,INDEX(BlueprintInfo!$C$3:$E$6,,MATCH(A2,BlueprintInfo!$C$1:$E$1,0)))
The MATCH matches the Item Name in A2 within the range BlueprintInfo!$C$1:$E$1, returning 1 in this case.
Then use this as the column reference: in this case effectively INDEX(BlueprintInfo!$C$3:$E$6,,1), which is just BlueprintInfo!$C$3:$C$6.
This is the same as
=SUMPRODUCT(BlueprintInfo!$B$3:$B$6,BlueprintInfo!$C$3:$C$6)
which is what you'd use if you hard-coded Column C for Item A.

Match values from two tables in excel

One table has policy numbers and the agent who wrote each policy. An agent's name multiple times.
Another table has just the policy numbers and I want to add the agents' names next to the numbers.
VLOOKUP doesn't work because the firs table shows the agents' names multiple times.
Any ideas how to do this?
If the numbers are unique and only the Agents are duplicates, you can use Index/Match or Vlookup.
With Index / Match:
=IFERROR(INDEX(Policy!$B$2:$B$15,MATCH(A2,Policy!$A$2:$A$15,0)),"")
Policy is the sheet where you have Numbers (Column A, A2:A5)and corresponding Agent (Column B, B2:B15) change the references to correspond the last row but keep $ for fixed references. You can drag it down next to A2 where the numbers that you need to find their Agent are.
With Vlookup:
=IFERROR(VLOOKUP(A2,Policy!$A$2:$B$15,2,FALSE),"")
You can drag it down, next to A2 where the numbers are in the new sheet.
Also change Policy!$A$2:$B$15 to correspond the references of your Data.
2 to return the value from the second column (Agent)
False for exact match.

Listing duplicate emails in Excel mailing lists

Im trying to create a list of values in 'sheet 3 column A', that are created by listing all values that are duplicates in two other sheets.
The duplicates are to be found by looking through each value in 'sheet 1 column P' and checking if that value also exists in
'sheet 2 column A'
I've tried reading up on this and there seem to be a number of functions I can use and not sure if I should use.
You need to use the VLOOKUP function, combined with IF. Together they are very very powerful. I really suggest you read up on them.
The following formula in Sheet 3, Column A (starting at row 2) will do what you want:
=IF(ISNA(VLOOKUP(Sheet1!P2,Sheet2!$A$2:$A$99,1,FALSE)),"",Sheet1!P2)
Copy that formula down from A2. I've assumed you have headings in row A. If you have more than 98 rows of emails (values to check), change $A$99 to be something like $A$9999.
So, let me get this straight. You have two workbook tabs. You want to get the intersection of the set (figure out where they are overlapping, duplicate, however you want to say it).
I would do one of two things, depending on how much you like Excel and moving your data around.
Option 1: Create a PivotTable of the data (assumes no duplicates within lists, only between lists)
Copy the data from the second list after the end of the first list (so both lists are now one list)
Insert a Pivot Table (on the ribbon), choosing your single column for the source
PivotTable options will pop up. Put the email address field in RowLabels and Count in the Summarize Values box.
Click on the count column of the pivot and sort largest to smallest.
All your duplicates will have Count > 1
Option 2 - use CountIf
This does not involve moving your data.
Go to sheet 2. In the next column over (from your info, it would be Column Q), put the CountIf function:
=CountIf(Sheet1!A:A,P2)
Then you can sort descending on your new count column to find duplicates.
CountIf performs very well in Excel if your lists are very large.
This can be refined slightly using iferror giving:
=IFERROR(VLOOKUP(Sheet1!P2,Sheet2!$A$2:$A$99,1,False),"",Sheet1!P2)
but is essentially the same thing

Make lookup tables in Excel/VBA from a list of names with repeats

I have a list of names and instances in Excel in one sheet, and a list names and of user ID's in another. I want to make a column that references name and user ID on the instance sheet, however some of the user's have identical names. For a 1:1 matching I use a vlookup to get the corresponding ID, but this doesn't work for multiple instances. What can I do to make a column that displays every possible ID associated with that name in the case of a Many:1 relationship? Example:
User Name: User ID:
Rusty McShackleford 1234560
Rusty McShackleford 1234570
Rusty McShackleford 1234580
Rusty McShackleford 1230110
Zap Brannigan 0000001
In the example above, I can match Zap to a user ID because there is only one instance, how would I match Rusty (or all the Rusty's) to an instance. Thanks for your help
Spreadsheet layout:
A2:A15 Names
B2:B15 IDs
D2 {=INDEX($A$2:$A$15;MATCH(0;COUNTIF($D$1:D1;$A$2:$A$15);0))}
Array formula, Ctrl-Shift-Enter in formula window to enter, curled brackets are inserted by Excel, not by a user.
Lists unique names in A2:A15, should be copied down. The column can be hidden.
E2: Cell with a dropdown list, entry is selected from a list of names in column D
F3: =F2+MATCH($E$2;OFFSET($A$1;F2+1;0):$A$15;0), copied down. F2 is an empty cell.
Finds the row(s) of matched name(s) in column A. Column F can be hidden.
E3: =OFFSET($A$1;F3;1)
Selects ID's for the certain name. The formula will be copied down.
Example spreadsheet: http://www.bumpclub.ee/~jyri_r/Excel/All_IDs_for_a_name.xls
A vlookup() requires a unique set of values. In your specific case, I would consider running the vlookup() on the user_id as it seems this a is a unique value that identifies each user.
In that regard:
Create a new tab (sheet)
In column A, copy and paste all "user_id" 's. Make sure to remove duplicates.
Column B -> "instance" use a vlookup()
Column C -> "name" use a vlookup()
Now to get a list of columns with all "Rusty" simply sort column c (Name) from A-Z. Rearrange columns if necessary.
Few reminders with vlookup(). Specifiy range lookup to FALSE. Make sure to use absolute references or better yet - use a table as a reference.

EXCEL: Combining SUMIFS with multiple VLOOKUPs due to small variances in names

Ok, this is going to be a difficult question to ask, but I'm gonna give it a try.
I have three sheets (Sheet1, Sheet2, Sheet3) in one worksheet (Worksheet).
Sheet1 contains ~100,000 rows with columns Company (A), Holding (B), Product (C), Year (D), Spend (E).
Sheet2 contains 100 rows with columns Company (A), Holding (B), Product Spend in certain Year (C).
Sheet3 contains 100 rows with columns Company (A), ID (B), Variant1 (C), Variant2 (D), Variant3 (E).
What I want, is in Sheet2 to calculate the Product Spend in certain Year. I've been able to do this as a test in Sheet1 by using the function SUMIFS. So in Sheet1 I used:
=SUMIFS(E:E,A:A,"Fake Ltd",B:B,"Fake Holding",C:C,"Dog Food",D:D,"2011")
The problem is that the company names aren't the same in all sheets. I tried to solve it via a FuzzyFind, but that is not working perfectly enough. So I decided to change my methods, and that's why Sheet3 exists. This sheet contains all different name variants of one company in one row (similar to a relational database).
Now I need to use this SUMIFS function in Sheet2 where the company name relates to all possible other company names in Sheet3 so it can sum the company names that appear in Sheet1 as if it were one company name. The column Company in Sheet3 is the 'chosen' company name and also the one used in Sheet2. It's Sheet1 that gives the problem.
So somehow I need to combine SUMIFS with VLOOKUP in Sheet2, but I am not sure how. Anyone any clues? I'll do my best to improve my question, I can imagine if I didn't do the best job explaining.
Unless Sheet1 is read-only, just add another column to Sheet1 in which you look up the proper company name from Sheet3. Then build your SUMIFS in Sheet2 based on this column.
If you're using Excel 2010/13, consider installing Powerpivot as an alternative. Here you only need to link the table from Sheet1 with the table from Sheet3 via the Company name column - and then produce a pivot that gives you all the aggregations you need!
I think what you're after is excel's array functionality.
http://office.microsoft.com/en-au/excel-help/introducing-array-formulas-in-excel-HA001087290.aspx
For Sheet C, I'd suggest repeating the pattern:
Company, Variant
That way, you can cross reference any and all companies that match in C without trying to compare against offset 1, 2, 3 ... n
You can then combine the results and use that to match against multiple criteria:
http://blog.contextures.com/archives/2012/07/12/check-multiple-criteria-with-excel-index-and-match/
(the criteria is essentially the union of all rows that match both a company name and a year).
Once you've got the array of the rows that match, you can then apply your sumif over the top.

Resources