I am working on a list of employees with multiple sheets, and need all the sheets to collect the names from the ADMIN sheet. This is to enable management to delete a record on the admin page, and the other sheets to automatically remove the record as well. The LEAVE sheet, needs to have the names in a merged cell as indicated.
If I reference them one by one, I get a #REF! when a cell is deleted in ADMIN, and the formulas in the rest of the table gets mixed. If I do it by dragging down, the formula identifies the merged cell as 3 rows (understandable), but I need a way to change that. It needs to be treated as one row. Please help with any way to do that, or another solution to display the given information.
Use INDEX and some MATH:
=INDEX(Admin!A:A,(ROW($ZZ1)-1)/3+2)
The 3 is the number of rows per merged cell. The 1 is the start row of the list on Admin. Adjust accordingly. The $ZZ1 reference is just a counter and does not matter what column as we only care about it starting in row 1.
Now as the rows in Admin are deleted it will not return ref and the names will move up accordingly.
before deletion:
After deleting Name2 on the Admin Sheet:
Related
Is there a way in excel to copy the contents of one column to another sheet based on particular values in another column.
I have data which looks like this:
Sheet1:
Sheet2:
I would like to copy the column A of sheet 1 directly onto column A of sheet 2, but only if the value in column B is Y.
I have tried used the match function but am not sure how the best way to do this would be. Is there a way for me to achieve this?
My desired output is:
As discussed in the comments, #Waldorf99 was looking to have a second worksheet that would automatically show a filtered list from the first sheet. I can think of a few ways to do this (array formulas or pivot tables come to mind). The problem with mixing dynamic columns with static values is that the static values would become desynced from the dynamic ones.
In the original example, rows may have a blank value in the condition column in sheet one, and then may be assigned a Y or N at a later date. If a Y is assigned to a row in the middle of other rows, the filtered sheet would shift the existing rows down to make room. The static values would stay where they were, and would become desynced. To demonstrate:
If the above image is the original state of sheet 1 and 2...
...adding a y next to x.1.c would result in sheet two shifting columns A and B of row 2 down, but leaves columns C and D behind (as they are static, and not tied into the first two columns in any way).
One thing that may work as you are wanting are filters. You would only have one sheet, with all of the data manually entered. Then you can add filters, and change them to hide rows temporarily when needed.
To add and use filters:
Start with your data all on one sheet...
Highlight your data...
On the Home tab, select "Format as Table" and choose any style...
This turns your data into a table. You can filter by clicking the drop down in a given columns header row, then deselecting the values you want to hide.
The results are a table that only shows the rows with a 'Y'.
The other rows aren't removed, just hidden. You can always reset or change your filters, to configure which rows are visible.
Note: when working with tables, they will auto expand to account for new rows, so long as you work in the row directly under the table (e.g. don't leave blank rows). You can also manually resize the table at any time by clicking and dragging from the bottom right corner of the table.
There are tons of resources of Excel tables online, and it's a pretty useful tool in Excel.
Hope that achieves what you were looking for.
I have a sheet of data.Sheet 1:
and I want to populate the following sheet:
Here, number of projects are fixed to be 7 for any customer. So for each customer I need to fill the latest status of all the projects. So if any customer has only got 1 project but many statuses the second sheet will only be updated for customer 1 in proj1 and the last status for that project is needed. Rest of the projects remain empty. For a customer who has 3 projects associated, I need to fill the data for proj1, proj2, and proj3. For each of these I need to find the latest status.
The entries in shee1 are not sorted, but for clarity I have put them in sorted order here.
Dont know how to accomplish this. I tried vlookup but it is limited in giving the first entry and ignores the rest. Tried to search on how to group or aggregate in excel but couldnt find anything suitable.
You can use array formula with INDEX/MATCH:
{=INDEX($C$2:$C$12,MATCH(1,($A$2:$A$12=$H2)*($B$2:$B$12=I$1)*($D$2:$D$12=MAX(IF(($A$2:$A$12=$H2)*($B$2:$B$12=I$1),$D$2:$D$12))),0))}
If you want a blank cell instead of an N/A error, use IF IFERROR:
{=IFERROR(INDEX($C$2:$C$12,MATCH(1,($A$2:$A$12=$H2)*($B$2:$B$12=I$1)*($D$2:$D$12=MAX(IF(($A$2:$A$12=$H2)*($B$2:$B$12=I$1),$D$2:$D$12))),0)),"")}
Array formula after editing is confirmed by pressing ctrl + shift + enter
VLOOKUP doesn't work with multiple columns , you will need a single helper key column to use it. You can do the following:
1) create a helper key column in your first sheet, before the Client column, that would be concatenation of Client&Project, so it would have entries like C1p1 and C4p3
2) in the second sheet add codes for the Project above your output table, so that the cell above Proj1 would be p1, the one above Proj2 p2, etc.
3) in the output sheet use the following formula (adjust the ranges, in this formula I assume that the customers are in Column A and Projects are in 2nd row, with respective project keys in the first row)
=VLOOKUP($A3&B$1,Sheet1!$A$2:$D$13,4,0)
$ signs are relevant as they keep the reference locked to the first column and row
Say I have a spreadsheet, as shown below:
Is there some kind of tool, add-in or formula, that would allow me to take all of the rows that are in 'July', and put them in a table in a separate tab:
In such a way that if I changed say 'COA' (the first row in the first picture) from January to July, it would automatically update the separate table to include this?
(Or at least be updateable with a click of a button or by refreshing)
My boss has asked me to see if this is possible, and I have no idea of how to go about it.
Thanks
It is possible.
In order to extract multiple items from a list you can use the INDEX function with SMALL to create an array formula.
Try the formula below. It assumes that the first column is A and column F contains the months.
=IFERROR(INDEX($A$2:$F$300,SMALL(IF(($F$2:$F$300="July"),ROW($A$2:$F$300)-1),ROW(1:1)),1),"")
IMPORTANT: use CTRL+SHIFT+ENTER when entering this formula to make it an array formula. You then need to auto fill down to get all the July records. This formula pulls data from column 1 (that's the last 1 in the formula). If your code in column 1 is unique to each row you can use a VLOOKUP to get the other columns. If it's not then you can copy the formula to the next column. And change the 1 at the end to 2..3 etc.
Instead of putting July in the formula you can reference a cell that contains July and then duplicate the sheet and change the cell to August or simply change the cell whenever you like to see data for different months.
It's not an easy formula to follow but it does work.
You could try doing a Pivot table with all the columns expect month in the rows section, using tabular view, no subtotals, and repeat item labels. Then put month in the filter section. Then you can update the pivot table by right click refresh or by clicking the refresh all on the data tab
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.
I have two sheets, one is a huge table of item ID's with a corresponding code column next to them. However over time this has not been properly filled in. I have assembled a complete list of item ID's and corresponding codes in another sheet.
I want Excel to fill in the blanks using the ID column as a key.
What's the easiest way to get Excel to look for the ID in the main sheet, and paste in the corresponding code from the other sheet?
Rather than fill in just the blanks - and face the issue of how then to skip over cells already populated - use the same formula to fill in the blanks and to overwrite whatever happens to be present already.