Using VLOOKUP to match a user ID to a supervisor - excel

As you could probably already guess, I am working on a report summary that displays the amount of time each agent has spent in different statuses such as 'Available', 'Unavailable', 'In a meeting', etc. that can easily be modified and doesn't rely on specific criteria, just the table rows & columns. For example, if someone was to switch teams or get a new supervisor, the data would be updated automatically when replacing the supervisor name.
The issue that I am having is when I try to use a VLOOKUP in my 'Report' sheet to match an agent's User ID to their supervisor in the 'Agent List' sheet, I am getting #N/A as my result.
This is the function that I have tried:
=VLOOKUP('Agent List'!C2, 'Agent List'!A:D, 4, FALSE)
As far as I know, I have met all the required arguments by stating where the data is stored by using 'Agent List'!, the look up value, the table array, which column to match it to, and whether I want an exact match or approximate match.
I have played around with the function for a while, and have looked at others posts, but was unable to resolve the issue on my own. Any help I can get with this would be great. Any suggestions on a better idea to achieve the same result are also welcome.
Thanks,
TNA
Agent List table example:

#N/A in a vlookup sense usually means the value was no found.
This is due the the data not being in the first column of reference.
Also are you trying to lookup the data from one sheet to another? The value you are looking up should be the first value in the formula. You appear to be looking up from the same table you are returning result from.
Instead you can try:
=VLOOKUP(OTHERSHEET C2, 'Agent List'!C:D, 2, FALSE)
OR
=INDEX('Agent List'!D:D,MATCH(C2,'Agent List'!C:C, 0),1)

Related

creating new column in excel based on conditions from two columns

What formulas can I use in excel to compute column D while simultaneously matching on column A,B and C.
If the case id is the same and date is the same, then if status is approved, final status is approved. but if case id is same date is same, and if status is denied, then final status is partial denial.
Can someone please help?
I tried do if and statement but I don't know how to match on unique case IDs in the same column.
It appears there is some missing information in your query. Let me write it out similar to an Excel IF statement:
=IF(CaseSame,IF(DateSame,IF(APPR,Appr,IF(DENY,PtDeny,??)),??),??)
With the information given, we don't know what to do in all outcomes. The outcomes marked with "??" will show as FALSE, because there is no output given for those criteria. But that formula would look like this:
=IF(A2=OFFSET(A2,-1,0),IF(B2=OFFSET(B2,-1,0),IF(C2="APPROVED","Approved",IF(C2="DENIED","Partial Denial",FALSE)),FALSE),FALSE)
And even there, I'm having to make the assumptions that you intend to go off the data in the row above for "case ID is the same" and "date is the same".
Are we supposed to assume that if no other criteria is given, to use column C's answer? In that case, there is still one unknown outcome in the IF statement:
=IF(C2="APPROVED","Approved",IF(C2="DENIED","Partial Denial",FALSE))
As long as no other entry is made in Column C, that should provide consistent results.
Here are what the two statements render in the Final Status column:
Results of both IF statements against your data and instructions
I hope this helps. With clearer information what to do in all circumstances, I may be able to provide a better answer.

How do one extract information from a dynamic table, automatically through excel functions?

I have been searching high and low for a way to solve my dilemma, in different ways, so I am trying to post both of the things I've been trying to do:
The challenge version 1:
I want to extract the entire row with information tied to the name which is the latest entry of that name in the table. So from the table below I would want to collect the entire row which contains the information: "A, Jack Black, 01.01.2029, 10:20". I simply want to copy the entire row to another sheet. But one important factor is that it has to happen automatically.
So i need functions which can check if: Is there another entry with the same name, higher up in the table? If so, DO NOT COPY THE ROW. If there ain't another entry with the exact same name higher up in the table, COPY THE ENTIRE ROW, to another table, within another sheet.
The challenge version 2:
What I really want to do is count the number of unique people(unique names) per. department, and summarize this in another table. Basically this means that "Jack Black" should be counted as 1 person, in department A.
So the result I want, is a table looking like this (the one beneath), where the number of people does not contain any duplicate people (names). OR it does not function with a dynamic table, which updates the information it contains on the fly. I can make this happen if I am copying from a static table, but as stated above, the table is dynamic and updates with new information every minute...
So far i've tried excel's built in filtering, but this does not work automatically. I've also tried using functions like in this guide: https://excel-bytes.com/how-to-extract-a-dynamic-list-from-a-data-range-based-on-a-criteria-without-filters-in-excel/. However every solution i find seems to need criteria for filtering out duplicates or does not function when copying information from a dynamic table.
Does anyone know how to reach my desired result, without implementing criteria for selecting the rows or counting rows as stated above? VBA code is not an option at the moment :(
In advance, THANK YOU, I've really tried solving this, but I feel like this just might break my head wide open soon if I can't solve it. HEEEEELP!
Sincerely
haakonlu

Partial match when look up value is lengthier than corresponding value in a table or a range

I have table as below. In first column name of the company and in next column corresponding country.
The look up value of company name is not exact match in this case
The company name from table is a subset of the look up value.
Reference Table as below:
The output expected is as follows:
I tried using formula=VLOOKUP(LEFT(B14,LEN(B14)-4),$H$2:$I$4,2,FALSE)
but it only help solve first entry and not for others. The output I got with above formula is as below:
Request help in sorting this issue.
Thanks
Maybe try the following:
=INDEX(I:I,SUMPRODUCT(ISNUMBER(FIND(H$3:H$4,B14))*ROW(H$3:H$4)))
However, this might be troublesome when you anticipate a word can be a sub-string inside another, eventually giving wrong results. If that won't be the case, that's great, but if so, then maybe safer would be:
=VLOOKUP(FILTERXML("<t><s>"&SUBSTITUTE(TEXTJOIN(" ",1,H$3:H$4,B14)," ","</s><s>")&"</s></t>","//s[preceding::*=.]"),H$2:I$4,2)

Excel match multiple records from timetable

I just stuck with my school homework, it seems easy, but there is always different errors and mistakes.
Context
All I need is to connect information from 3 pages.
The first one is timetable of trainings.
The second page is "groups"
Players page
Question
1) Here is my first question. How I can put the time from the "timetable" page ?
I tried vlookup with the easiest group "children 5-7" but even this doesnt work.
The problem is that there is many possible times of some groups and I need the answer like "17:00, 18:00 etc" then.
2) The second question is with the page "players".
Firstly I need to match group or coach from page "groups". For children all is simple, but excel dont want to work even with this. But, there is one problem more. In adult group there cant be more than 4 players in one group, that why I have TK1, TK2, TK3 and TK4 - all this are for adult A. and TK11, TK22 etc are for adult B. So when its done we should match court and time from page "groups".
There is my spreadsheet so be free to try it right here. Hope you will help me!
Ref
https://docs.google.com/spreadsheets/d/1PNp60xmHOx_Q1wBc33WrzIaWmeNG5UMhi-4roV7dJXU/edit#gid=1868650910
I try to give you some ideas about how to solve your issues
Question 1:
The issue you have with VLOOKUP is that you cannot search on the left of your lookup value in the reference table. As suggested above by BruceWayne, you may use INDEX/MATCH. Considering the structure of your data a good formula could be:
=INDEX('timetable try here'!B:G,MATCH(A2,CHOOSE(B2,'timetable try here'!C:C,'timetable try here'!D:D,'timetable try here'!E:E,'timetable try here'!F:F,'timetable try here'!G:G),0),1)
In fact I am using CHOOSE() to select the column where your case should match, because your courts are numbers from 1 to 5. You may replace this formula in the column D under the label Time in your sheet named "groups try here". By the way the result that you get is only the first occurrence (in case you see a zero with some decimals figures, remind to change format to hours), so you will not be able to get the list as you like. As far as I know Excel does not have such kind of formulas. What you could do is create a VBA formula by yourself. You can find more details in this other post always here in StackOverflow, where I replied to a similar question with some code. I believe that your case is exactly the same.
Question 2
In this part I just added the last argument to the VLOOKUP and your formula works. So the correct formula should be in cell E2 of "players try here":
=VLOOKUP(D2,'groups dont try here'!A2:C15,3,0)
and in cell F2 (Court) of the same sheet:
=VLOOKUP(D2,'groups dont try here'!A2:C15,2,0)
I believe you need also a formula to pick-up the time in cell G2 (time):
=VLOOKUP(D2,'groups dont try here'!A2:D15,4,0)
These formulas of course works with suitable groups starting with "children". For the others it is not very clear to me what you need. If you have grouped all TK in Adult A and Adult B you need to have some criteria to fill in the other cells from your sheet 'groups dont try here'. Also remind that if you recode the TK1 and TK2 (for instance by adding a new column to be used as key for the VLOOKUP), with VLOOKUP you will always pick up only the first occurrence in the table.
If you need more support, please leave a comment.

Excel Lookup with multiple queries

I have a question that I a may not be thinking correctly about. But I have an a long excel file that I pull from somewhere else with the following columns:
Project_Name1, Employee_Name1, Date_Worked1, Hours_Worked1
In another sheet I have these columns
Project_Name2, Employee_Name2, Begin_Date2, End_Date2, Hours_Worked2
This second sheet is filled with data, and works just fine.
However, it turns out that I have some employee names that I do not know that are also working on the same project. I need to figure out the names of the employees and then sum the number of hours they worked for a given period.
So I need a lookup with three criteria:
Project_Name1 = Project_Name2
Employee_Name1 <> {Array of Employee_Name2}
Begin_Date2 <= Date_Worked1 > End_Date2
Returning Employee name.
Once I have the employee name, I can do a sumifs=() and get the total hours they worked no problem.
I have tried a number of combinations of Index Match functions, using ctrl-shift-enter... and have not been able to figure out it. Any help would be greatly appreciated.
What you're talking about doing is extremely complicated and a little bit past what Excel was designed to do by default. However, there are a few workarounds that you can use to attempt to get the information that you're looking for.
It's possible to do multiple-criteria VLOOKUPs and SUMIFs by concatenating fields to make a multi-part identifier (Ex: Insert a new column and have a forumla in it like =A1&B1)
Open a new workbook and use Microsoft Query (I'm not sure if you can select from more than one sheet, but if you can select from multiple sheets like tables you should be able to write a semi-complex query to pull the dataset you want.
http://office.microsoft.com/en-us/excel-help/use-microsoft-query-to-retrieve-external-data-HA010099664.aspx
Use the embedded macro feature and use visual basic script to write out your business logic. (Hotkey is ALT+F11)
One way to do this would be to first create an additional column to the right of entries on the sheet you're trying to pull employee_name from: =ROW()
You could then use an array formula like you were trying to implement to pull the corresponding 'match' row:
{=SUM((project_name1=projectname2)*(employeename1<>employeename2)*(begindate<=date_worked1)*(date_worked1>end_date2)*(match_column))}
You could then use this returned match_column entry within the index as you described to retrieve the appropriate entries.

Resources