The previous version of the application returned a single match by itself. Now the match will be seen in the context of the whole table.

Anchoring to the row and highlighting it works when there are rows below. However, when the single result is the last row in the table it doesn't work as well.

One solution is to animate the table scrolling to the anchored row (like my example below). My fear is that the user may miss the animation if they are looking away; the only remaining indication being the scroll bar at bottom position.

Table: Zebra is exact match search item


When constrained to a layout of table data there are a couple of ways to let the user know there are no more rows of data.

1. Tell the user that they have reached the end

Adding text in the last row that simply says end of file or no more data is an easy change that ensures context to the actual last row of data above it. It's important to make sure the font color and style of this text is easily distinguishable from actual data in other cells. Using a lighter font, for example, will let the user know the current situation without being too distracting or just looking like another row of data.

a gentile reminder

2. Change the appearance of the scrollable area

You could also change the appearance for rows at the end without any data in them to let the user know they are at the end of data cells.

This could also be combined with option 1 above if users seem to need additional assistance.

change row appearance

| improve this answer | |
  • 1
    Can you elaborate a little as to why you believe your approach is correct? – Charles Wesley Feb 3 '15 at 18:05
  • 1
    That could do the job. Thanks. Users add an item to the table and then need to perform an action on all items at once. When the search result was returned separately, the user had an extra step to add it to the table. – Ginger Feb 3 '15 at 18:31
  • The trouble here is that you're adding an arbitrary amount of blank space below the table to allow the row to scroll to the top of the view. – plainclothes Feb 3 '15 at 19:48
  • That's another parameter that is fixed for me: it's a set height element. Another idea may be to anchor the found item in the center. Even if it's in the last row, the highlighted item would sit center (top-to-bottom) with rows above it. – Ginger Feb 5 '15 at 20:47

Only give them what they asked for

As you suggested in your question, it's best to filter out irrelevant rows and focus on what the user is searching for. Trying to show a queried row alongside unwanted data clutters the interface and adds mental overhead.

Provide obvious filtering indicators

You want to be very clear about the filtering and provide easy options to expand (or narrow) the results.This is an example from a "micro report" I designed -- enlarged so you can read it ;) It provides five functions related to filtering:

  • Clear indication of the term(s) filtered against
  • Ability to enter more terms
  • Control to remove individual terms
  • Control to remove all terms
  • Information about the extent of the full data set

enter image description here

| improve this answer | |
  • Great filter example; I agree with those simplification principles. A business requirement is that it must display within the table because the surrounding data is useful for my users. – Ginger Feb 3 '15 at 17:31
  • So you're looking for a find, not filter ... got it. Do you need to support both functions? – plainclothes Feb 3 '15 at 19:47
  • Ah, yes - that's right. Not in this instance. There actually is a filter button as well, but that's another story for another day. – Ginger Feb 3 '15 at 21:19
  • Well, it's good to have both, but definitely complicates matters. Is the 'find' field a persistently visible input? – plainclothes Feb 3 '15 at 22:12
  • Indeed. Yes, the find is always there, awaiting the user's input. – Ginger Feb 5 '15 at 20:44

Write "1 item found". Also, let the user know what they searched. E.g., "1 item found for search 'apple'", so they can retrieve the state of the system when they get back if they interrupt the task.

Edit: you could have an extra column at the begining of the table. Inside of each cell, there would be a small coloured dot meaning that that row matched the search, or nothing if it didn't match. Then link this dot to the search box (maybe by using the same colour).

| improve this answer | |
  • Thanks. Any thoughts to let them know they are not just looking at the one item but where that item sits in context of the table (last row)? – Ginger Feb 3 '15 at 16:25
  • I am sorry! I see that I didn't understand your question at all. What does "in context of the table" mean? – Heitor Feb 3 '15 at 17:09
  • No worries. The search result will not be returned by itself. It will be shown where it lives within the table, but anchored to the top. User could scroll up and down. The issue: What to do when it's the last column and looks like a single result? – Ginger Feb 3 '15 at 17:26
  • You mean that the table will always be there, once the user type something, some rows will be highlighted? or re-ordered? I edited my answer. Hope it helps. – Heitor Feb 3 '15 at 18:03
  • Yep, table is always there. Search match is highlighted. Order is preset, but default can be changed. – Ginger Feb 3 '15 at 18:33

Have you considered using Google spreadsheet's "highlight" matching fields approach?

enter image description here

I'm making an assumption that the data you filter on will be directly shown on your table. This approach doesn't work if the data isn't on the table.

As shown in the example, the highlight color stands out very well amidst your records. Because you're only highlighting specific cells, it's very obvious what the filter is matching on. The Previous and Next controls to move through the matches so there's no unexpected scrolling.

There is also no issue if there's only a single row since only the matching cell will be highlighted.

| improve this answer | |
  • I like this answer, too! It will be another option I can propose. Thank you. – Ginger Feb 5 '15 at 21:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.