Moving from Excel to Asana: Don't Migrate Everything

Here's the biggest mistake teams make when they move from Excel to Asana and it's not a technical one. It's migrating everything.
It feels like diligence. Every row, every tab, every colour-coded column, faithfully recreated in the new tool. But a spreadsheet that has run a team for three years isn't a clean data model. It's the fossil record of every workaround you ever invented: the column someone added for one awkward client, the tab that exists because two people disagreed in 2023, the "Notes 2" column nobody remembers creating. Copy all of that into Asana and you haven't migrated, you've recreated the problem with better fonts.
The honest version first: Excel is a superb calculation tool. Budgets, models, forecasts, analysis, that's what a grid of cells is built for, and nothing we say here changes it. What Excel was never built for is coordinating people: deadlines that remind someone, handoffs that actually reach the next person, status that stays true without a meeting to correct it. The migration is about moving the "coordination" out of the grid not the whole grid.
So before you touch an importer, do the triage.
Step 1: Triage what the spreadsheet actually holds
Open the tracker and sort its contents into four piles. Most spreadsheets that coordinate work are carrying all four, tangled together.
Live work: migrate it. Rows that represent things people still need to do: tasks in flight, upcoming deliverables, open client requests. This is the coordination layer, and it's the only pile that genuinely belongs in Asana.
Reference data: often stays in a sheet, and that's fine. Rate cards, supplier lists, contact details, lookup tables. This is data, not work. A spreadsheet holds it perfectly well, and dragging it into a work management tool adds nothing. Link to it from Asana where it's needed and move on.
History: archive it, don't import it. The 900 rows of completed work from the last two years feel precious, but importing them buys you a new project that opens on a wall of done. Save the file, store it somewhere findable, and keep the slate clean. If you ever need to know what happened in March 2024, the archive will still answer.
Formulas and calculations: keep them in Excel. This is where we'll be blunt, because it builds trust on both sides: Asana is not a calculator. If your tracker computes margin per project or rolls up budget burn with SUMIFS, that logic stays in Excel, where it belongs and where it works. The pattern that serves teams best is a clean split, Asana coordinates the work, Excel crunches the numbers, and neither pretends to be the other.
Done honestly, this triage usually shrinks the migration by more than half. That's not lost work. That's the point. Asana's own Anatomy of Work research found that around 60% of time goes on "work about work" and a bloated migration is work about work in its purest form.
Step 2: Map columns to Asana concepts
Now take the live-work pile and translate it. The core mapping is simpler than most teams expect:
Rows become tasks. One row, one piece of work, one task.
The owner column becomes the assignee. With one crucial upgrade: an assignee gets notified. A name typed in a cell notifies nobody, the spreadsheet only answers when someone opens it.
The date column becomes the due date. Which now reminds the person it belongs to, instead of waiting to be discovered.
The status column becomes sections or a custom field. Use sections when status describes flow , To do, In progress, Done because dragging a task between sections is the update. Use a custom field when status is an attribute you want to filter and report on, like priority or approval state. If your column mixes both ("In progress; HIGH PRIORITY; waiting on legal"), that's three fields, not one.
Tabs become projects or sections. If a tab is a genuinely separate stream of work with its own owner and rhythm, it's a project. If it's just a slice of the same work this month, that client, it's probably sections within one project, or a filter. The test: would anyone ever need to see this tab's work alongside another tab's? If yes, keep them in one project. Spreadsheets scale by adding tabs, and every tab adds a place for work to hide; don't rebuild the hiding places. Then there are the two columns that almost never map cleanly and they tell you more about your spreadsheet than everything else combined.
The free-text notes column: It's where status, blockers, context and light gossip have been living in one cell: "waiting on Dave, client unhappy, see email from Tues". None of that is a field. In Asana, blockers become comments on the task (visible, timestamped, attributable), context goes in the task description, and the gossip well, that was never data. Expect to translate this column by hand, row by row, for live work only. It's tedious and it's worth it.
Merged cells: A merged cell is a spreadsheet's way of saying "it's complicated" one thing spanning several rows, usually because the real structure is a task with subtasks, or one deliverable shared across owners. Unmerge the thinking before you migrate: what is the actual unit of work here, and who actually owns it? Merged cells don't survive a CSV export anyway, so the spreadsheet will force the conversation whether you like it or not.
Step 3: The mechanics, briefly
The good news: Asana's CSV importer exists, works, and handles the mechanical part in minutes. The sequence that makes it painless is almost entirely preparation:
1. Clean the sheet first: One header row. One record per row. No merged cells. Consistent status values, "In progress", "in prog" and "IP" need to become one spelling before import, or you'll be cleaning in Asana instead of Excel, where it's slower.
2. Import into the project: mapping your columns to assignees, due dates and custom fields as you go.
3. Then sweep through once: confirm assignees matched real people, dates landed correctly, and statuses sorted into the right places.
Ten minutes of importing. The real work was the triage and the mapping which is exactly as it should be.
Step 4: Add what the spreadsheet never had
A clean import gets you a tidier version of your tracker. The actual payoff comes from the things no spreadsheet column could ever carry:
Rules for recurring work: The monthly report, the weekly client check-in, the invoice run, set them to create, assign and advance themselves. One of our clients' ops teams cut weekly admin by 12+ hours within six weeks through automation rules alone.
Forms for intake: Instead of "add a row to the tracker" (which really means "message the person who owns the tracker"), requests arrive through a form, pre-structured, and land as tasks. The spreadsheet's one true owner is finally off duty.
Dependencies: A spreadsheet row can't tell the next row it's finished. A task, can the handoff notifies the next person the moment it's unblocked.
The update-free status: Because status now reflects where tasks actually are, nobody maintains it. Anatomy of Work puts the cost of typed-not-true trackers in context: managers spend 62% of their day on work coordination. A live view is how you claw that back. And this is where the gap has recently widened further: since Asana launched Agentic Work Management in September 2026, an Asana workspace can host an AI teammate, Asana Dash can flag overdue and at-risk work and generate a status update from live data. A spreadsheet can't host an agent; there's nothing live for it to read.
Step 5: The first two weeks one source of truth
The cutover rule is simple and non-negotiable: never run both live. The day the Asana project goes live, the spreadsheet goes read-only, kept for reference, updated by no one. Name the cutover date in advance, tell everyone, and hold it.
Teams that keep "just updating the sheet too, for now" end up with two half-true trackers and a worse mess than they started with. Two weeks of mild discomfort in the new system beats six months of double entry. By the end of week two, run your weekly meeting from the Asana view. If a question comes up that only the old sheet can answer, that's a mapping gap, fix it in Asana, don't reopen the sheet for editing.
When to get help
A single-team tracker with a few hundred live rows is a DIY job, this guide is genuinely enough. But some spreadsheets are a different animal. We've seen more than one business running entirely through a single master spreadsheet, a "One Pager" with a dozen tabs, maintained by hand by the most senior people in the company, touching every team at once. Migrating that isn't an import; it's an operating-model redesign wearing a CSV costume. Multi-tab, multi-team, company-on-one-sheet situations need sequencing, structure decisions and change management and that's precisely the work we do.
(If you're still weighing whether to move at all, start with (Where Excel genuinely wins and loses), or our upcoming piece on [project management in Excel]
Book a free 30-minute call with one of our consultants we'll look at your current tracker and show you what it would look like in Asana. You'll leave with a triage of your own spreadsheet and a map of what moves, what stays and what gets archived, whether you build it with us or on your own.





Comments