Searching in spreadsheets — analyzing UX patterns

Zsofia Paszternak
7 min readSep 6, 2021

--

In the past months, I spent a lot of time examining UX patterns in different data analytics tools. I find it very interesting how spreadsheets like Microsoft Excel defined the way we interact with data. Is there room for improving the UX of these tools or have we already achieved perfection? In this blog post, I’d like to summarize my findings on search functions concentrating on filtering, sorting, and quick search.

Why should we include search functions in tables?

Long story short, it’s more efficient and saves time. Thanks to computers we don’t have to go through a large amount of data manually anymore, we have smart systems that work for us. (Do you remember dictionaries? How much longer did it take to write your homework back then?)

The three main types of search functions we use simultaneously are filtering, sorting, and searching.

Filtering is useful for hiding irrelevant information that pollutes your data. It can help in relieving cognitive overload: A greater number of options can make it more difficult to make a decision.

Sorting in alphabetical or numerical order only reorganizes the data, it does not hide anything. It helps to structure information in a relevant way, spotting patterns or inconsistencies.

Search is often treated as a filter in the sense that it can hide results. In spreadsheets, however, it might be more useful to just highlight a piece of data. If we’re looking for something specific (e.g. a name or an email address) the fastest way is to search for it.

Filtering

The goal of filtering data is to exclude information that you don’t need, to reduce noise in your dataset. This is the most complex search function from a UX perspective because filtering options depend on the type of data itself.

I found two main UX patterns: the first one applies the filter from the column headers, the other from a dedicated menu. Let’s see how they work, and some pros and cons!

Apply filter from the column header

Where: Microsoft Excel, Google Sheets

Just to try a more complex scenario, I’ll combine two filters. In my example, I wanted to search for all graphic designers who were born before 1920.

In Sheets, filtering can be turned on for any column from the toolbar.

Applying filters in Google Sheets, GIF
In Google Sheets, you have to define the filtered area first, then you can filter each column separately

Pros

  • Start from the context — since you apply filters right from the column headers, it’s easy to connect the function with the data itself
  • Compact dropdown menu — you can apply or edit filters without losing the context of the table

Cons

  • Too many options — even though the dropdown menu hides some options and uses dividers to create categories, there’s still a lot of information presented
  • Lack of an overview — If you have more columns than the with of your screen you have to scroll. It can be difficult to filter in multiple columns at the same time because you need to scroll or reorganize them.
  • Hard to clear filters — there’s no clear button, you either turn off filtering altogether or clear your filters manually
  • Combining filters — You can only combine filters with ‘and’ statements. What happens if I want to filter for graphic designers or people born before 1920?

Apply filters from a menu

Where: Airtable, Smartsheet

With the rise of lightweight online databases like Airtable, we can see a lot of innovation happening to spreadsheets. The biggest advantage is that you can easily connect data across multiple sheets and view it in various ways, not only as a table.

When it comes to filtering, these tools tend to have a dedicated filter menu, that serves as an overview. First, you have to choose a column to filter from a dropdown list, then you’re presented with contextual filter options.

Applying filters in Airtable, GIF
In Airtable, filters can be applied from a menu. You can access this menu from the column headers as well

Pros

  • Contextual filter options — Since tools like Airtable have column types, they can limit the filtering options. E.g. You get different options to filter a column with text-based data than a column with numbers or dates. Since Excel or Google sheets allow full customization, they have to present all these filtering options at once.
  • Clear overview on all applied filters — you can always open the popup and see all your applied filters in one place. It’s also very easy to change an ‘and’ to an ‘or’ condition.

Cons

  • Hard to find the right column — choosing the column name from a dropdown is more work because you have to remember its name. Most people automatically right-click on the column header, because that’s how they learned it in Excel. Probably because of these reasons the interaction is available from the column header as well. If you click on the column and select filtering from there, the filter menu will be prefilled.
Filtering function in Airtable
The filter menu in Airtable has multiple touchpoints
  • The filter menu can interfere with your workflow — In Smartsheet, the filters appear in a modal. This is problematic because it prevents you from interacting with the rest of the table. What if you don’t remember the name of the column? Or if you apply a filter that doesn’t bring you any results? Before you hit Apply, you wouldn’t know….
Filtering function in Smartsheet
The filter modal in Smartsheet blocks the whole table

So, which pattern is better? It depends of course, but I do see more advantages in a dedicated menu, where you can see everything regarding filtering. If(!) that menu doesn’t block you from using the table, and you can access it from the column headers as well.

Sorting

The sort function has one job: to reorder information in alphabetical or numerical order. The list can be ascending or descending, and it should be easy to toggle in between them. Simple, right? Well, after looking around a bit, it seems like UX designers cannot agree on a single pattern.

There are more advanced options to consider as well:

  • Would you like to sort only one column or the whole table?
  • Do you need to sort multiple columns after each other?
  • What if your column has a header you need to be fixed on the top?

Google Sheets provides two ways. Starting from the column gives you a quick and simple option to sort the whole sheet. You choose from A to Z / Z to A (I like the simple microcopy there) and that’s it. If you’d like to sort the column only, you can do that from a popup from the menu. You can’t disable or revert your sorting in either case.

Sorting function in Google Sheets
In Google Sheets, you can sort the sheet or the column only

Airtable and Smartsheet sorting functions are available from the column menu (Airtable also has it in the top navigation). In both cases, it opens a separate menu. Airtable’s solution provides a quick way to toggle between ascending and descending order, lets you keep the list sorted, or remove it anytime. The other tools don’t make it easy to remove sorting and revert to the original table.

Sorting from a modal in Airtable and Smartsheet
Sorting from a modal in Airtable and Smartsheet

I’d like to mention one more common pattern that feels like the quickest interaction to get the job done. In many cases, clicking on an icon in the column header will sort the table. Clicking for the second time will change the order, and finally clicking for the third time makes the sorting disappear. You can see an example here.

Searching

Last but not least, let’s talk about quick search. This option is the best when you’re looking for something specific, and you want to find it fast. Based on the usability interviews I had, people rarely need this function in tables, but it can make those moments much more pleasant.

We know the Cmd/Ctrl + F function in your Chrome browser well. It opens a search bar in the top right corner, and it highlights the keywords you’ve searched for on any page. It’s important that this is not a filter: a lot of search bars (e.g. the Google search) are filters in reality.

The quick search works in Google Sheets and Airtable the same way, making it super easy to jump in between cells. It’s very important to sow the number of results, and to highlight the cells properly.

Search function in Airtable and Google Sheets
Quick search is good for finding specific information

Final thoughts

Even though these search options are powerful, they do require some previous knowledge. That is why it’s very important to be mindful of the people who use your table. It could be, that implementing only one of the above-mentioned functions is enough for them.

I’m only scratching the surface with this topic, but I already realized that there are huge differences in how people go about analyzing data. Most of us use filtering, sorting, and searching to some extent in our day-to-day lives, and they save us a ton of effort.

Separating these functionalities makes it possible to use them at the same time, creating powerful data analytics tools. If you include all of them in your data table, I’m sure people will find their needles in their haystacks.

Further reading

A great article with great examples — https://medium.com/swlh/find-a-needle-in-the-hay-best-practices-for-filtering-ui-design-fd51f556160f

Dan Brown, Eight Principles of Information Architecture — https://asistdl.onlinelibrary.wiley.com/doi/pdf/10.1002/bult.2010.1720360609

A very detailed breakdown on table elements and how to design them — https://www.smashingmagazine.com/2019/02/complex-web-tables/

--

--

Zsofia Paszternak

I’m a product designer with a background in visual communication. I get very excited about creating simple solutions for difficult problems.