User Research, Product Design, Ideation, Prototyping, Usability Testing, Figma
Nadine Peralta
Product Designer
6 weeks
.png)


















While taking UC Berkeley’s User Experience Design class, I was assigned to reimagine Google Sheets as a digital tool used for productivity. The first phase of the project involved conducting user research to obtain insights which I then used to brainstorm potential solutions. The second phase focused on feature ideation, prototyping, and usability testing before I finally arrived at my final prototype.
The first task was defining the target audience. I chose young professionals who use Google Sheets in a variety of settings, be it for work or personal use. I conducted 5 contextual interviews and collected 50 survey responses from users ranging from the beginner to expert level. I then summarized my findings.

From my user research, I obtained some key insights that helped inform my design process.
After deciding to hone in on redesigning Google Sheets’ organizational capabilities, I brainstormed various features that could be added or redesigned to the current user flow. I weighed the pros and cons for each feature and proceeded to sketch a rough user flow that informed my low-fidelity sketches.
When designing the low-fidelity sketches, I incorporated the new features in a way that integrated with Google Sheets’ current interface. While my redesign applied to various use cases, I decided to go with a scenario where a hypothetical user was trying to budget and used Google Sheets as a way to track their monthly expenses.
After completing rough wireframes for the ‘budgeting’ use case, I conducted usability testing with the people I previously interviewed and surveyed. After observing and gathering feedback, I identified the top usability issues and revised my wireframes accordingly. I conducted two more rounds of usability testing before I finalized my user flow.
The final user flow below informed my high-fidelity prototypes shown in the next section. I also tested the usability of my redesign on other use cases to ensure that it was applicable and logical in other scenarios.
This is my proposed solution shown with a user who wants to track their spending breakdown from the previous month. To do this, they would have to categorize their expenses and aggregate values based on expense type. Below is a high-fidelity user flow of how this scenario can look like with my implemented reimagining of Google Sheets, broken down step-by-step.
After the user has finished listing all expenses, they go to the ‘Tags’ column, which will be used for categorizing each expense in the spreadsheet. Once this column is highlighted, the user now goes to the ‘Insert’ tab and clicks on ‘Tags’, which will allow tags to be inserted in the desired cells. The selected cells are now populated with green plus icons, which signal that tag(s) can now be added to each cell. Since there are currently no existing tags, the user creates the ‘Food’ and ‘Leisure’ tags for the first expense. The same process is repeated for the remaining expenses.
With GSheets’ current implementation, one would need to use Data Validation for categorization. Its main limitation is the inability to add multiple criteria in one cell. For example, the 1st row are under the ‘Food’ and ‘Leisure’ categories. In the current user flow, the user has to create 2 columns and apply data validation to both of them. While this method is fine for a small number of columns, it is inefficient for spreadsheets that require complex categorization. The Tag feature builds upon Data Validation by having improved discoverability for easier categorization.
Once the user has finished categorizing their expenses, they now want to determine the totals for each category. To do this, they use the SUMIF formula and the tags associated with their corresponding categories. Let’s say the user wants to calculate the total amount spent on food. They first type =sumif( to indicate to Google Sheets that they will be using the SUMIF formula. The user then clicks on any of the ‘Food’ tags in the spreadsheet. This highlights all the cells that contain the ‘Food’ tag. They now select the range of cells which will be passed into the formula. B2:B8 is selected, which represents the column that shows the dollar amount for each expense. Once the formula is closed with the end parentheses, Google Sheets calculates and shows the total amount spent on food. The same logic applies to all other categories.
In the current user flow without tags, the SUMIF formula is still used to aggregate expenses by category. The key differences between the current and proposed user flows are the number of variables passed into the formula and the way they are passed.
The tags' functionality extends to the creation of formulas. In the current user flow, one would aggregate expenses by category using the SUMIF formula in the following format:
In my proposed feature, only two variables need to be passed into the SUMIF formula: the tag the user wants to filter by, and the range of cells to be aggregated. This saves a lot of time as the user can now simply click on the tag instead of (1) specifying the range of cells from which to look up the category and (2) typing in the category with double quotation marks. The new user flow is 5 seconds faster than the old one and as these differences compound, a more efficient way to Google Sheets' current implementation is ideal.
A user also has the ability to change tag(s) in a cell. In this example, the user has wrongly tagged the expense ‘Lyft to Downtown Berkeley’ as ‘Leisure’ instead of ‘Necessities’. To correct this, the user simply clicks on the ‘Leisure’ tag. The pop-up window appears where the user has can uncheck the box next to the ‘Leisure’ tag and check the box next to the appropriate tag.
Additionally, the user has the option to customize and edit tag(s) to their liking. To do this, the user clicks on any tag. A pop-up window showing all the tags used in the spreadsheet appears. Each tag has three dots next to it, which will enable the user to rename the tag or change its color.