Excel - Show all results with multiple results vlookup - excel

In my Excel file there are different columns. One of them shows all the names. In my tool it's possible to look up the data by name. The problem is that some names appear more than once in the column. How can I show all the results in stead of only the first name founded?

VLOOKUP only returns one value. If you need multiple values, then you would need to write a excel macro
Naz

Related

Excel: Find matching email addresses in ALL columns

I'm trying to clean up some email lists. I've got eight CSVs of email addresses. I'm trying to find email addresses that appear in ALL eight lists.
I've tried copying and pasting them into a single Excel document (a column for each list). But I am only able to compare TWO columns using methods like this:
=IF(COUNTIF($B:$B, $A2)=0, "No match in B", "")
so it doesn't tell me if there's a match in ALL columns (and technically that code tells me if there isn't a match). I can sort of figure it out by comparing two lists, then using those results to compare it to the third list, then use those results and compare it to the fourth list, and so on until I get through all eight lists. But
I've also tried using conditional formatting which formats duplicate values, but it again doesn't tell me if the match appears in ALL columns (it highlights if there's even one match).
Is there any way in Excel that I can indicate either with highlighting, or copy the value to a new column, any email addresses that appear in ALL columns?
So, just one formula:
SUM(IF(IFERROR(FIND(J3,A$3:H$12,1),0),1,0))>=8
See:
Just used names as you did not provide any data.
You can do it easily with Pivot Tables. Instead of creating a column for each CSV file (like the left part of image above), just copy all of them in the same column, one CSV after each other (like column E in image). Then insert a Pivot Table:
Take field Email into Values section and rows Section
Filter by values using the number of CSV as criteria (3 in the image, 8 in your case because you got 8 CSV files)
Create a PivotTable to analyze worksheet
data
Results are the emails that appear in all CSV.
Of course, this will work only if each e-mail appears once in each CSV file. If there are duplicates, you'll need to deduplicate each CSV before creating the unique column

Return values from multiple rows across multiple sheets, using the same identifier

I have come across this problem often and I am hoping there is an efficient solution for this, one that I can replicate. I typically need to summarize data contained in multiple sheets of a excel (2016 or 365) or googlesheet. I create a report by adding a tab within the workbook. To generate the report, I use formulas to pull in some of the values contained in each sheet. Vlookups or Hlookups work for most use cases but only returns the first value using a unique identifier that is present in the report tab and in the other sheets. Where I run into issues is when I would like to return multiple values from a unique identifier. For context, I typically need each column of the report tab to pull in values from one column of another sheet. The tabs typically contain 1000s of rows so an efficient formula would. Any tips?

Making excel search using one letter in cell

So basically, I have been trying to make excel scan one column and print out the row for cells which have specific letters.
For example I have the following data in my sheet.
What is required is to be have excel search for the values which contain T and I, and then print the new rows. Kind of like separate the two into two different tables, because then so that I can do further analysis on them.
So far I have been trying to use the VLOOKUP() function, but the problem with VLOOKUP() is that excel required a proper match and not just a letter in the cell. I had tried with both FALSE and TRUE. Then instead I tried to use the =INDEX($B$4:$K$9;MATCH($A$17;$A$5:$A$9;0);COLUMN(A4)) to make it work. But that also does not work, since it also requires a full match. Also another problem which I didn't realise before is that how can excel recognise each cell, because I will have different number after the letters everytime and then so how can one make excel not repeat the same row twice?
I have used another approach where I copy the data in a separated sheet and then I simply filter out the Ts and then copy/paste the Is into another sheet and vice versa. it is time consuming and so it would be much better if I can simply copy/paste my new data and it would generate the division on its own.
any suggestions or link would be really helpful.
UPDATE
I had a new idea on how to approach this problem. I was thinking that is it somehow possible to have VBA code running for filtering the data. Is there a way to specify in VBA code to filter the data by "Starts With" and Make the results be printed in another cell block?
Looks simple enough. First step is to make sure you have headers over your data and that it is in proper table format similar to my picture. Then select Data set and press CTRL+T. That should turn you data in to table object with stripes. Use the Formula =LEFT(C2,1) to take out the first letter which will be L or T.
Select the table and press ALT+D+P which will generate a pivot table based off original data set.
Drag the column with the formula I suggested over to the FILTERS area of the pivot table ID column to ROWS and all others to VALUES. Simply refresh and as new data is added you will get new pivot tables. Do not put the pivot tables on top of each other as I did that is only for the picture so you can see it. If you have too many filters to apply you can right click the helper column in the pivot table fields area to produce a slicer which is a button that helps you change the report quickly. Any other questions do ask.

Unique Values across multiple columns

I have a spreadsheet that has multiple values in it, but I need to create a formula that would pull the names from the columns without any duplicates. Here's an example spreadsheet:
I would like the result to be like:
So to do it manually, I'm using a SUMIF to search the data for "Walked dog" and add the value.
I'm doing this by manually typing the event names, and if there's one added, I have manually add this instead of something automatically adding that new unique value to the spreadsheet. I've tried SUBTOTAL, SUBPRODUCT, and SUMIF, but they don't seem to do what this spreadsheet requires. Any help would be appreciated.
=SUMIF($C:$F,"Walked dog",$D:$F) is the only function I can get to work correctly, but that requires manual input of the names each time a new event is added.
If you are able to get all your data into one column, you could then use a pivot table. Pivot tables would allow your "Time" column to be grouped and summed up by your "Event" column. As I mentioned, you would need all your "EventN" columns copied into a single "Event" column. You will often need to transpose your data around to make your life easier when using spreadsheets.
Here's the first google result for an example: http://www.excel-easy.com/data-analysis/pivot-tables.html

Combining Excel sheets/groups of columns by a condition in Excel 2007

Is there a way to combine 2 Excel sheets (or groups of columns inside one Excel sheet) so that the rows in one sheet/group append to the other sheet/group where so that certain columns values match.
To clarify:
Lets say I have 2 sheets - Sheet1 and Sheet2. Sheet1 has the columns A,B,C,D. Sheet2 has columns A,E,F,G. Column A in both sheets contains the same data but differently sorted (it is not sorted in conventional way (alphabetically or numerically)). I need to combine these 2 sheets into one, but they need to be combined so that the values in A column match (if possible the result should be ordered in the same way as the Sheet2).
Ideally, the functionality I'm looking for would need to be like SQL's INNER JOIN command.
I'm using Excel 2007.
Thanks
I think you basically described the VLOOKUP function.
You have your two sheets, now you want to create a list, which extends A,B,C,D to A,B,C,D,E,F,G.
For that, you could just use
Sheet1!E1=VLOOKUP(Sheet1!A1,Sheet2!A:G,5,FALSE)
Sheet1!F1=VLOOKUP(Sheet1!A1,Sheet2!A:G,6,FALSE)
Sheet1!G1=VLOOKUP(Sheet1!A1,Sheet2!A:G,7,FALSE)
If you need to create an extra sheet3 as a result, use this:
Sheet3!A1=Sheet1!A1
Sheet3!B1=VLOOKUP(Sheet3!A1,Sheet1!A:D,2,FALSE)
Sheet3!C1=VLOOKUP(Sheet3!A1,Sheet1!A:D,3,FALSE)
Sheet3!D1=VLOOKUP(Sheet3!A1,Sheet1!A:D,4,FALSE)
Sheet3!E1=VLOOKUP(Sheet3!A1,Sheet2!A:G,5,FALSE)
Sheet3!F1=VLOOKUP(Sheet3!A1,Sheet2!A:G,6,FALSE)
Sheet3!G1=VLOOKUP(Sheet3!A1,Sheet2!A:G,7,FALSE)
Hope this interpretation was correct.
Edit:
By the way, because Excel is not mainly intended to function as a database, this operation is a bit messy, because it does not dynamically scale. At least with the second approach, using a thrid sheet. You will have to copy down A1 at least that far, to match the last used row from Sheet1. And if you should copy it down further, so you won't have to worry about it for a while, you might need to error-proof against the empty cells.

Resources