Excel formula to define groups for unique items - excel

Currently at my workplace, I am facing an issue of grouping items. As shown in the image, I need to group the first group of RIOs in a cabinet as 1 and the second group of RIOs in that same cabinet as 2. The process is the same for different cabinets.
Is there a way to get this done by using Excel formula? I don't mind creating extra columns for rough works. It should be noted though that the formula need to work in a table format.
Example:

Well, If I understood your problem correctly then following should help. (Using helper column)
In Cell C3 and Cell D3 write 1
Then in Cell C4 enter the following formula
=IF(B3=B4,C3,C3+1)
And in Cell D4 enter
=IF(C3=C4,IF(A3=A4,D3,D3+1),1)
drag/copy down both formulas as required. See image for reference.
Note : For this solution to work Category column should be sorted.

Related

Excel Formula required to get the top cell

I am trying to create a bandwidth tracker. I want the date to populate of next available in the Column C.
For example Name E is getting available on 9/18/2021. I want this date to populate in cell C6.
Can any one tell me the formula to be used for this.
Bandwidth Tracker:
Thanks
INDEX/MATCH should work for you. Put below formula C2 cell and drag down till need.
=INDEX($D$1:$I$1,MATCH("Available",D2:I2,0))

Is there a way to drag formula down but changing the column

I'm trying to make a summary which list out all the matches and do a transpose of the table. I wrote a formula which works successfully. But, I come into another problem, which I find my formula cannot be dragged down and apply to all rows. Can anyone assist me in improving my formula?
Source:
Summary:
I would want to drag down the rows in "My summary" and the formula can do the columns+1 automatically. Appreciate for your help.
Here's my formula:
=IFERROR(INDEX(Sheet1!$F$9:$F$16, SMALL(IF(Sheet1!$H$9:$H$16="X",ROW(Sheet1!$H$9:$H$16)-ROW(Sheet1!H$9)+1),COLUMN(A1))),"")
In your screenshot it's difficult to tell which rows the data lives in. The following formula has been entered into Sheet2, cell B2 and copied down.
=IFERROR(TRANSPOSE(FILTER(Sheet1!$F$9:$F$16,INDEX(Sheet1!$H$9:$K$16,1,ROW(A1)):INDEX(Sheet1!$H$9:$K$16,8,ROW(A1))="x")),"")
Source screenshot Sheet1
Result screenshot Sheet 2
This approach uses Excel's Dynamic Array functionality, available only in Excel license with Office 365. The formula is only in column 2. It automatically spills its results into the neighboring columns as required.
edit after comment
If you don't have Office 365, you can use a variant of your formula, where the Index is replaced by and Index():Index() technique. The first Index pulls the first row, the second Index pulls the last row and the two results are combined with the range operator : that combines the two results into a range.
=IFERROR(INDEX(Sheet1!$F$9:$F$16,
SMALL(IF(INDEX(Sheet1!$H$9:$K$16,1,ROW(A1)):
INDEX(Sheet1!$H$9:$K$16,8,ROW(A1))="X",
ROW($A$9:$A$16)-ROW(A$9)+1),COLUMN(A1))),"")
Start in the first result cell (B2 in my screenshot) and use Ctrl+Shift+Enter to confirm, since it is an array formula. Then copy across and down.
Note: screenshot results are different, since I recreated the sample from scratch and the source data is different.

If a cell in column A in sheet 2 equal to a value from sheet 1 then return the values from sheet 2 to column B and c in sheet 1

I am looking to do a kind of automatic cell updates on excel, which is a status update for a product we got and the location of the product in the warehouse.
I have basic knowledge of VBA and I didn't manage to code anything to help me with that. I tried to use If function, but didn't make sense because I can't find a way to achieve what I need.
Here is sheet 1
and sheet 2
examples.
This is what I am trying to achieve:
if a cell within Sheet2 column A range = Cell A2 in sheet 1, then fill Sheet1, B2 cell and Sheet1, C2 cell with the information from sheet2 on the condition that it is the most recent entry (in the example images it is the entry with the dispatched status)
Would you recommend VBA or using formulas, and if so what should I do?
This can be done with formulas, however getting the latest value isn't as easy as it seems. This can be achieved however by following this tutorial for reference. I especially refer to the part using LOOKUP(.
Other than that, all you need to do is set your ranges to refer to the correct sheet.
=IFNA(LOOKUP(2,1/(Sheet2!A:A=Sheet1!A2),Sheet2!B:B),"")
My formula in B2 is:
=INDEX(Sheet2!$B:$B;MAX(SI(Sheet2!$A:$A=Sheet1!A2;ROW(Sheet2!$A:$A)-MIN(ROW(Sheet2!$A:$A))+1)))
My formula in C2 IS:
=INDEX(Sheet2!$C:$C;MAX(SI(Sheet2!$A:$A=Sheet1!A2;ROW(Sheet2!$A:$A)-MIN(ROW(Sheet2!$A:$A))+1)))
Both formulas are array formulas so instead of entering them with ENTER, they must be entered pressing
ENTER+CTRL+SHIFT at same time
Anyways, these formulas will probably make your file heavy and slower. Think about redesigning the way you save data, and consider adding a date field, and resuming data with Pivot Tables.

VBA Selecting a cell based of multiple critera

I am trying to find a way to reference a cell in VBA based on two other cells in the datasheet.
In the datasheet I have a domain (D) column e.g. "example.com" and I have a date column (A) e.g. 01/01/2017
In my main worksheet I have a table with domains in column A and the dates in row 10. I am trying to find a to pick the cell in the table that falls into the date and domain based on the record it is currently looking at in the datasheet
Using that first line of data here is the an image highlighting the cell which I want to select.
My plan is to then copy the detail from the [Pass] column into that cell, I am just having problem selecting that cell.
I've tried as many solutions as I can find on here, most using one set of criteria, but I cannot seem to get them to work for me in this situation.
Many thanks
Dummy data
edit - added dummy data - had to remove screenshot of the data as I can only upload two links
Assuming your Sheet2 is as follows
Then, in Sheet1 enter the following formula in Cell E2
=INDEX(Sheet2!$A$10:$AH$17,MATCH(D2,Sheet2!$A$10:$A$17,0),MATCH(A2,Sheet2!$A$10:$AH$10,0))
Drag/Copy down as required. Change range as needed. See image for reference.
EDIT : As per comment
Enter this formula in Cell Z14
=INDEX(Sheet1!$C$2:$C$5,MATCH(A14,Sheet1!$D$2:$D$5,0))

Return last instance of value from column when two criteria met in row

I'm having trouble getting an Excel formula that returns the last instance of a value in a column when two criteria are met in the adjacent row.
In the dummy example, I have a diary of what activities I have performed with which pets when. See image below.
Workbook screen shot
I'd like a formula that tells me when I last performed a particular activity with a particular pet.
For example, when did I last massage my frog? Or when did I last brush my cat?
Using =INDEX(B:B,SUMPRODUCT(MAX((Pet=A2)*ROW(Pet)))) in B2 or =LOOKUP(2,1/(Pet=A3),B8:B13) B3 I can get Excel to tell me when I last did an activity with a particular pet.
But I'd like to know when I last did a particular activity with a particular pet.
Any help much appreciated.
Put this formula in B2 and drag down to B4:
=INDEX(B:B,AGGREGATE(14,6,ROW($B$8:$B$13)/($A$8:$A$13=$A2),1),1)
Put this formula in C2, drag across to E2 and then drag down the next two rows:
=IFERROR(INDEX($B:$B,AGGREGATE(14,6,ROW($B$8:$B$13)/(($A$8:$A$13=$A2)*($C$8:$C$13=C$1)),1),1),"-")
This all assumes your dates are all entered in chronological order.
Considering your data is in the range A7:C13 including headers and pet names are listed in A2:A4, then try this...
To get service date,
In B2
=MAX(INDEX(($A$8:$A$13=A2)*$B$8:$B$13,))
and copy down.
Then
In C2
=IF(ISNUMBER(MATCH(1,INDEX(($A$8:$A$13=$A2)*($B$8:$B$13=$B2)*($C$8:$C$13=C$1),),0)),"True","")
and copy it across and down.

Resources