Find cells and save information to the left of that cell - excel

I have a spreadsheet with some 20,000 rows. I have another spreadsheet with around 50 names. The 50 names exist in the sheet with 20,000 rows, and in the column to the left of the name is the information I want.
The spreadsheet looks like the table below (I dont have enough "reputation" to post a picture)
987884_R5 Rusescu, Iulian
T1025189_R1 Rusescu, Iulian
T1069036_R1 Pauls, Henrik
T1092840_R1 Pauls, Henrik
T1099343_R2 Pauls, Henrik
857825_R1 Davidsen, Thomas
I want to search these 50 names (e.g. "Rusescu, Iulian", "Pauls, Henrik") and save the information to the left of them, but do it all at once instead of using Ctrl+F for every single name. I will have to repeat this task a couple of times with other documents and want to save time.
Can anyone help me? I'm really bad at Excel, but trying to learn it.
Thanks!

Assuming 987884_R5 is in A2 and you list of names is in ColumnA of Sheet2, copy your long list to a new sheet and in C2 there put:
=VLOOKUP(B2,Sheet2!A:A,1,0)
and copy down to suit. Filter ColumnC for #N/A and delete selected rows. Unfilter and delete Column C.

EDIT: Actually this only gives the first instance of info next to a name, I can't really find a way around this, so I'll just leave it here as it might be useful for someone with a sheet of unique names.
So if we call the 20,000 row sheet Sheet1 and the 50 names sheet Sheet2, and assuming the names in Sheet2 are in col A; enter in Sheet2 B1 next to the first name:
=INDEX(Sheet1!A:A,MATCH(A1,Sheet1!B:B),0)
This will result in the list of 50 names in col A in Sheet 2 having the info associated with those names in col B.

Related

Using two values in a sheet to filter and return values from a table in another sheet

I'm fairly new to coding and i've been googling around for the last few hours trying to solve this problem but it seems to be a little beyond what i'm able to do so i would be very grateful for some help
In Sheet1, I have a table which has columns between M - CV (175 columbs). For each column, i have an "ID number" value in row 3. From Row 6 to the end of the table, i have several "search terms" separated by commas in the column CV
In Sheet2, the corresponding "ID Numbers" are in column B. Column AN contains strings.
For each ID Number value in sheet1, i'm looking to find find all the corresponding cells in sheet2 where the ID number in Column B is the same, and Column AN of sheet2 contains at least one of the "search terms" in column CV
For each ID number, i'm hoping to join the entries in Column AN of sheet2 which match the criteria above and paste them into Row 5 of the respective column in Sheet1
I've gone around in quite a few circles trying to do this and i'm back to square 1 with no code to show for it.
I've tried to research both the autofilter function, and using for loops. The research i've done indicates that for loops are rather slow to run for a large data set.
I'm hoping to find a solution which is as easy to read and understand as possible
I hope i've given enough information for everyone to understand and help
THank you in advance
My Excel subscription has expired an I've started using Google Sheets for most of my spreadsheet work, so I tested this there. Some conversion may be required. I did this using formulas, not VBA also, not sure if that changes things for you.
If I understand correctly, you have two sheets with a shared key column, sheet 1 contains search terms across multiple columns, and sheet 2 contains search terms comma delimited in a single column.
With this setup we want to bring the search term column of sheet 2 into the correct row of sheet 1 by key using VLOOKUP. I made a named range in sheets which contained all my data on sheet 2 and called it "dst". My formula was then =VLOOKUP(A2, dst, 7, true) since my key in sheet 1 was in column A, dst was the range I was searching, my column with my delimited search terms was column 7 in relation to dst, and I had ordered sheet 2 by key. I pasted this formula relatively down all rows as needed.
We want to construct a regex string using our search terms across multiple columns in sheet 1, into a single cell. I used =JOIN("|", B2:E2) on sheet 1 since my search terms were in columns B:E, and this resulted in a regex that looked like this for me: alligator|dog|rabbit|lizard where alligator, dog, rabbit, and lizard, were all search terms in that row. Paste down relative as needed.
We want to run our regex against our search target cell containing the comma delimited search terms. I ran =REGEXMATCH(F2, G2) where F2 was my delimited search terms from sheet 2, and G2 was my constructed regex for the row. Paste down relative as needed.
A screenshot of my completed sheet 1:
Once you know which cells have matches you can do whatever you want.

Copy data from another cell if criteria is met

I have quite a problem. In the excel spreadsheets, I have a lot of data entered into one main spreadsheet and some of the into another.
In the main Spreadsheet (Sheet1), I have column L, that has tons of entries of unique numbers. Also, I have a column Q that stores another data for a lot of entries into the sheet.
In another sheet (Sheet2), I might have some of the entries that can be the same with the column L in the Sheet1, and they are stored in column D, on Sheet2. So, if those two sheets entries matches (L:L in Sheet1 with D:D in Sheet2), I want to have the Q entry from Sheet1 into my, lets say N column at Sheet2. If they don't match, blank would be ok.
I've been searching the solution for quite a time, found some on Microsoft official website, but I haven't been able to apply it.
This one was the closest solution I could find, but, since I'm newbie with Excel, I haven't been able to implement it correctly.
Edit:
To Illustrate a bit, here is exactly what I am looking for:
Lets say:
Sheet1
L2=115457; Q2=2148446
L3=381493; Q3=Blank
L4=121214; Q4=484846
L5=151515; Q5=Blank
Sheet2
D143=381493; N143=(need input from Q2)
D523=121214; N523=(need input from Q4)
D968=151515; N968=(Blank)
Thanks in advance.

MS Excel - Match 3 columns between two sheets. When matches are found, copy a 4th column from each to a third sheet

When the all three columns "Last Name, First Name and DOB" match on any rows between the 2 sheets, I need to have the account numbers from the matching rows listed on a third sheet. There are thousands of rows in each sheet. There will likely be multiple matches for some accounts. I prefer to put the functions on the 3rd sheet so that I can change out the lists in the first 2 sheets without needing to update them.
Sheet1
Acct # Last Name First Name DOB
89158 Stevens John 1/23/2012
Sheet2
Acct # Last Name First Name DOB
124578 Stevens John 1/23/2012
Sheet3
Sheet1 Acct # Sheet2 Acct#
89158 124578
Thank you in advance!
This works with duplicate values
The formula will need to be entered as an array (once copy and pasted while still in the formula bar hit CTRL+SHIFT+ENTER) and the range adjusted to fit your total values.
=IFERROR(INDEX(Sheet1!$A$2:$D$50,MATCH(1,($C2=Sheet1!$B$2:$B$50)*($D2=Sheet1!$C$2:$C$50)*($E2=Sheet1!$D$2:$D$50),0),1),"No match found")
The exact same formula can be used again changing Sheet1! to Sheet2!.
This will search for the last name that is in Sheet3!C2, first name that is in Sheet3!D2 and the DOB that is in Sheet3!E2.
I have only locked off the column in case you are looking to use this for a large volume of data and wish to drag it down.
If you want to display the additional account numbers that meet the search criteria and are only using sheet 3 to search for one person, then you will need to look at using INDEX(), MATCH() and SMALL().
I had looked to include this alternative in my answer too but I am now leaving the office. It won't take me long to conjure if you struggle so drop me a comment and I will be happy to explain how it all works.
EDIT: To list all ID's found for the search criteria - Leave blanks where not found
=IFERROR(INDEX(Sheet1!$A$2:$D$50,SMALL(IF(COUNTIF($C$2,Sheet1!$B$2:$B$50)*COUNTIF($D$2,Sheet1!$C$2:$C$50)*COUNTIF($E$2,Sheet1!$D$2:$D$50),ROW(Sheet1!$A$2:$D$50)-MIN(ROW(Sheet1!$A$2:$D$50))+1),ROW(Sheet1!1:1)),1),"")
Again, replace sheet 1 for sheet 2 and update the ranges to match what you are searching through, use CTRL+SHIFT+ENTER in the formula bar to make the formula an array then you can drag it down to cover all the potential matches, best to aim for what you believe would be the highest number of duplicate IDs.
Let me know how you get on, if this answers your question, please mark this as an answer using the tick to the left, thank you.
I ended up putting list A and List B into a sheet and then using this formula: =ISNA(MATCH(B2&C2&D2,I:I&J:J&K:K,0)) Then I created another sheet where I added list B and then list A and used the same formula. Once the calculation was complete for each sheet, I used filters to only list the matches for the first lists in each spreadsheet.
I then took the matches for each sheet and listed them side by side in the third sheet. I made sure the sort was matched between the two lists and then was able to scroll through a page at a time and identify a few users with multiple account numbers in each system.
It's not as automated as I would like, but it is done for now. Thank you Stack Overflow!

Adding in information from one spreadsheet to another

Good Morning,
I have a spreadsheet with 40,000 products and a spreadsheet with 35,000 products all with item ID's
Is there anyway I can add in the missing 5,000 ITEM ID's using a forumla? I dont want to manually go through each item and see what is missing
Thank you very much for your time and help
Cheers
If ColumnA holds the unique ID's in each sheet please try:
=COUNTIF(Sheet1!A:A,A1)
in Sheet2 and
=COUNTIF(Sheet2!A:A,A1)
in Sheet1, both copied down to suit.
Then sort both on the results of these columns and copy those that result in 0 from one sheet to the other to ensure complete sets in both sheets and to check whether either sheet has duplicates.
next to column "A" in your longer list, put a formula in cell B1 assuming your data starts from A1:
=if(isna(VLOOKUP(A1,**column A of first shorter list**,1,false)),"Missing","Exists")
and populate down until the end of the list, the entries reading "missing" are the ones that are missing from the first list.
I assume your list of source IDs lays in Sheet1!A2:A40001, row 1 is for headers. The target IDs are in Sheet2!A2:A35001
Detect which are missing.
Use the following formula in Sheet1!B2:
=MATCH($A2,Sheet2!$A$2:$A$35001,0)
Copy down to Sheet1!B2:B40001.
Filter out those already present.
Select row Sheet1!1:1. Use Data -> Filter. Go to the drop-down arrow in cell B1, and select only #N/A.
Copy those missing.
Select all values shown in column Sheet1!A:A. Copy, and paste below the last value in column Sheet2!A:A.
It is easy to figure out how to do the same if you have adjacent columns with relevant data that you want to copy as well.

Combining Like Data in Excel

So here is my situation: I need to take two spreadsheets in excel and combine the data together so that any additional data is paired up with common data between the cells. Here's an example of what I mean.
Sheet 1
1234567, JOHN, DOE, 1234567.JPG
Sheet 2
JOHN, DOE, 6634
First and Last names are common data, but the number in the second sheet does not exist in the first. The user list in both sheets are slightly different from each other so I can't simply alphabetize the names and move the additional column over. I have about 500 users to go through and may have to use what ever solution I come up with for similar lists of users.
Any assistance would be great.
There's various techniques you can use to combine data but you'll have to be a bit more specific. For example is there a fixed number of columns that sheet 1 doesn't have that sheet 2 does?
The basic technique would be to create some sort of unique identifier, perhaps by concatanating the names together in both sheets? that way you can use VLOOKUP to put all the missing data in one sheet into the other
Not sure I understood "I cant alphabetize the names". However, if the names have the same spelling i.e John is John in both sheets you can concatenate John and Doe in sheet 1 and do same in sheet 2 and use a vlookup function. Something like
A=cellcontainingJohn&CellcontainingDoe in sheet1
B=cellcontainingJohn&CellcontainingDoe in sheet2
C= Vlookup(A,rangeforB,columnnumber)
Here's what I would do:
Select the sheet into which you want to pull data from the other. I'll assume we're pulling data from sheet 2 into sheet 1.
In sheet 2, insert a column to the left of what you have already. JOHN is now in column B, DOE in column C, and 6634 in column D.
In sheet 2, column A, row 2 (assuming you have a row of column headers) which is currently empty, use the formula
=CONCATENATE(B2,C2)
Now, head back over to sheet 1. Let's assume you also have a row of column headers in sheet 1, so the cell immediately to the right of your 1234567.jpb is E2 and it's empty. In E2, use the following formula
=IFERROR(VLOOKUP(B2&C2,'Sheet 2'!$A:$D,4,FALSE),"")
That should give you what you're asking for, if I understand your question correctly.

Resources