How to Create an Expense Report in Tableau
Transforming a plain spreadsheet of expenses into an insightful dashboard isn't as complicated as it sounds. Using a tool like Tableau, you can turn endless rows of numbers into clear, interactive charts that instantly show you where your money is going. This guide will walk you through step-by-step how to connect your expense data and build a professional expense report in Tableau.
Before You Begin: Preparing Your Expense Data
Tableau is powerful, but it works best with clean, well-structured data. Before you even open Tableau, take a few minutes to get your expense spreadsheet in order. A messy data source will lead to a confusing and inaccurate report. This preparation is the most important step for a successful outcome.
Your goal is to have a simple, flat file where each row represents a single expense transaction. Your columns should represent the different attributes of that expense.
Essential Columns for Your Expense Report Data
At a minimum, your spreadsheet (whether it's in Excel or Google Sheets) should include a clear header row with columns like these:
- Expense ID: A unique identifier for each expense line. This helps prevent duplicates.
- Transaction Date: The date the expense occurred. Make sure these are formatted as dates, not text.
- Employee Name: The name of the person who incurred the expense.
- Department: The team the employee belongs to (e.g., Marketing, Sales, Engineering).
- Expense Category: This is crucial. Use consistent categories like "Software Subscriptions," "Airfare," "Client Meals," "Office Supplies," etc.
- Amount: The total cost of the expense. This should be a numerical column with no currency symbols.
- Description: A brief note about the expense (e.g., "Monthly Salesforce Subscription" or "Lunch with XYZ Corp").
- Payment Method: How the expense was paid (e.g., "Corporate Amex," "Personal Card - Reimbursement").
Quick Data Cleaning Tips:
- Check for Consistency: Ensure your categories are standardized. "Travel" and "Travel Expenses" will be treated as two separate categories by Tableau. Pick one and stick to it. Use find-and-replace to clean these up.
- Fix Data Types: Make sure date columns are formatted as dates and amount columns are formatted as numbers.
- Handle Blanks: Look for any empty rows or missing values in critical columns like 'Amount' or 'Date' and fill them in or remove the row if the data is incomplete.
Once your data looks clean and organized, save the file somewhere you can easily access it.
Free PDF · the crash course
AI Agents for Marketing Crash Course
Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.
Connecting Your Data to Tableau
With your polished data file ready, it’s time to bring it into Tableau. This process is straightforward and only takes a moment.
Step 1: Open Tableau and Connect Launch Tableau Desktop. On the left side of the screen, you’ll see the "Connect" pane with a list of data sources. If your data is in an Excel file, click "Microsoft Excel." If it's in Google Sheets, click "Google Sheets" and follow the prompts to sign in and authorize access.
Step 2: Select Your File Navigate to your saved expense report spreadsheet and open it. Tableau will now take you to the "Data Source" screen.
Step 3: Review Your Data Connection On this screen, you'll see a list of the sheets in your workbook on the left. Drag the sheet containing your expense data onto the main canvas area that says "Drag tables here." Below the canvas, Tableau will display a preview of your data in a grid. This is your chance to do a final check. Look at the small icons above each column header:
- Date: Make sure your
Transaction Datecolumn has a small calendar icon. - Number: Your
Amountcolumn should have a pound/hash symbol (#). - Text: Your
Employee Name,Category, etc., should have "Abc" icons.
If Tableau has misinterpreted a data type, you can click the icon and change it to the correct one.
Once everything looks good, click on the orange tab at the bottom left for "Sheet 1" to move to your first worksheet and start building.
Building Your First Expense Report Visuals
This is where the fun begins. We’re going to create a few different charts on separate worksheets, which we’ll later combine into a single dashboard. Tableau's interface is based on dragging and dropping fields - which Tableau calls "pills" - onto different "shelves" like "Columns," "Rows," and "Marks."
Chart 1: Total Spending Over Time
First, let’s see the big picture: how has spending trended over time? A line chart is perfect for this.
- Navigate to your blank Sheet 1 (you can rename it "Monthly Trend" by double-clicking the tab).
- From the "Data" pane on the left, find your Transaction Date field. Drag and drop it onto the Columns shelf. Tableau will likely default to show
YEAR(Transaction Date). - Next, drag the Amount field onto the Rows shelf. You'll see the total sum of expenses for each year.
- To get more granular, right-click the
YEAR(Transaction Date)pill on the Columns shelf. In the dropdown, choose the second option for "Month" (the one with a green line icon showing "May 2015"). This tells Tableau to show a continuous monthly trend.
Just like that, you have a line chart showing your total spending over time. This is great for spotting seasonal spending spikes or growth in overall expenses.
Chart 2: Expense Breakdown by Category
Now, let’s find out where the money is actually going. A bar chart is the best way to compare spending across different categories.
- Click the "New Worksheet" icon at the bottom of the screen to create a new sheet. Rename it "Expenses by Category."
- Drag the Expense Category field onto the Rows shelf.
- Drag the Amount field onto the Columns shelf.
Tableau will automatically create a horizontal bar chart. To make it even more useful:
- Sort it: Hover over the "Sum of Amount" axis at the bottom until a small sort icon appears. Click it to sort your categories from highest to lowest spending.
- Show Labels: Drag the Amount field again, but this time drop it on the Label box within the "Marks" card. The total amount will now appear on each bar.
You can now immediately identify your top spending categories.
Chart 3: Spending by Employee or Department
Next, you’ll likely want to see how spending is distributed across individuals or teams. This is almost identical to the category chart.
- Create another new worksheet and name it "Spend by Employee."
- Drag the Employee Name field (or Department) onto the Rows shelf.
- Drag the Amount field onto the Columns shelf.
- Sort the chart descending and add labels just as you did before.
This view is invaluable for budget management and understanding team spending habits.
Chart 4: A Detailed Expense Table
Visualizations provide a great overview, but sometimes you need to see the line-item details. For this, we’ll build a text table.
- Create a final worksheet and name it "Detail View."
- Drag Transaction Date to the Rows shelf. Right-click it and change it to "Exact Date," and then right-click it again and change it to "Discrete."
- Drag Employee Name, Expense Category, and Description to the Rows shelf, placing them after the date.
- Drag the Amount field to the Text box on the Marks Card.
This gives you a scrollable, spreadsheet-like view of every single expense, which will be useful for drilling down from our other charts.
Assembling Your Interactive Dashboard
Now it’s time to bring all your hard work together into a single, cohesive view. A Tableau dashboard is a collection of worksheets arranged on a single pane.
- Click the "New Dashboard" icon at the bottom (it looks like a small grid).
- On the left, you will see a list of the worksheets you just created. Simply drag and drop each sheet onto the dashboard canvas.
- Try to arrange them logically. A common layout is to put your high-level overview charts (like the monthly trend and category breakdown) at the top, with the more detailed views (like the detail table) at the bottom.
Free PDF · the crash course
AI Agents for Marketing Crash Course
Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.
Making It Interactive
This is where Tableau really shines. Let’s make the charts talk to each other so clicking one filters the others.
- Select one of your dashboard charts, like the "Expenses by Category" bar chart. You should see a grey border appear around it with a few options in the top right.
- Click the small funnel icon that appears. The button is called "Use as Filter."
- Repeat this for your other overview charts like "Monthly Trend" and "Spend by Employee."
That's it! Now, try clicking on a bar in your "Expenses by Category" chart - for example, the "Software Subscriptions" bar. You’ll see the other charts on the dashboard instantly update to show you the trend of software spending, which employees are spending on it, and the specific line-item transactions. This allows anyone using the dashboard to explore the data and answer their own follow-up questions.
Final Thoughts
By following these steps, you've successfully transformed a raw spreadsheet into a dynamic and analytical tool. This Tableau expense report offers a clear, at-a-glance understanding of spending patterns, empowering you and your team to make more informed financial decisions without getting lost in rows of data.
Building dashboards in BI tools like Tableau is an incredibly valuable skill, but the setup and learning curve can be a hurdle, especially for busy teams. To solve this, we created Graphed to be the fastest way to get from your raw data to a real-time report. You can connect sources like QuickBooks or your spreadsheets, then simply ask "create an expense report showing me spending by category and month" in plain English. We instantly build and maintain the dashboard for you, so your whole team can get the insights they need in seconds, no technical skills required.
Related Articles
How to Create Facebook Ads API for Claude Code
Create a Meta Marketing API access token that never expires, using a system user, so Claude Code can pull Facebook ad reports and manage campaigns.
ClickHouse vs Postgres: When to Switch to Columnar
Comparing ClickHouse vs PostgreSQL means matching storage architecture to workload. Row storage wins for transactions. Columnar wins for scan-heavy analytics.
Google Ads for Orthodontists: Get More Booked Consults
Most orthodontic Google Ads campaigns waste money on low-intent searches. The problem is structure, not the platform.