Question

I have an excel spreadsheet that has a 'Main View' sheet and a 'High Priority' sheet. In the 'Main View' sheet there is a column named Priority. In this column you can have three options, Low, Med, and High. The way I would like this to work is, if I have a row that has a High Priority I would like to display the entire row details in the 'High Priority' tab automatically.

Here is an example of how the data looks.

"Ticket Number" | "Description" | "Priority"
123             | Test case     | Low
223             | Client Issue  | High
345             | System Down   | High
456             | Phone down    | Low

The data I would like to automatically transfer over to the next sheet is the High Priority issues.

I tried using Vlookups and a filter to do this, but the problem I am having is if I add a new High Priority issue to the 'Main View' it does not populate in the 'High Priority' sheet.

I have a user who isn't familiar with programming, so I am trying to avoid doing this in VBA - I have a solution if we were going to do it this way.

Please let me know if there is a way to handle what I want in Excel and not VBA.

Was it helpful?

Solution

In order to do this without VBA, your best bet would be to introduce a "helper column" in your "High Priority" sheet that would tell you in which row your next High priority value lay.

So, if, for example, your original sheet looked as follows:

Col A           | Col B         | Col C
"Ticket Number" | "Description" | "Priority"
123             | Test case     | Low
223             | Client Issue  | High
345             | System Down   | High
456             | Phone down    | Low

Your high priority sheet would look as follows:

Col A           | Col B           | Col C         | Col D
RowVal          | "Ticket Number" | "Description" | "Priority"

Then in Cell A2 you would put in the following formula enetered as an array formula (After you enter it, instead of pressing ENTER, you press CTRL+SHIFT+ENTER):

=SMALL(IF(Sheet1!$C$2:$C$1000= "High",ROW(Sheet1!$C$2:$C$1000)-MIN(ROW(Sheet1!$C$2:$C$1000))+2),ROW()-1)

Then in B2, you would put in this formula:

=IF(ISERROR($A2),"",OFFSET(Sheet1!$A$1,$A2-1,COLUMN()-2))

Now you can drag B2 across for all your columns and then drag the entire row down and you should have what you're looking for.

Again, this will be very memory intensive and a VBA solution would probably be better, but this should do the trick given your requirements.

Godd luck!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top