Kanban Board Inside Google Sheets: Advanced Setup Guide
Beyond the Basic Kanban Sheet
The basic Google Sheets kanban uses conditional formatting to color-code rows and filter views to show tasks by status. This guide covers advanced techniques: WIP limits, swimlanes, and automation with Apps Script.
Adding WIP Limits
Work-in-Progress (WIP) limits cap how many tasks can be "In Progress" at once. In Sheets, implement this with a COUNTIF formula in a summary row:
=COUNTIF(B:B,"In Progress")
Add conditional formatting to this cell: if the count exceeds your WIP limit (e.g., 3), turn the cell red. Team members can see at a glance whether the WIP limit is breached before pulling new work.
Swimlanes by Assignee
Swimlanes group tasks horizontally by assignee or team. In Sheets, implement this with a sorted view: sort by the Assignee column, then use alternating row colors (Format → Alternating colors) with a custom formula to group by assignee.
A more practical approach is separate filter views per assignee — each person sees only their tasks. Create a filter view for each team member via Data → Filter views → New filter view, filtering column C to their name.
Automated Status Timestamps
Track when tasks move to each status by adding timestamp columns (Started At, Completed At) and an Apps Script trigger:
function onEdit(e) {
const sheet = e.source.getActiveSheet();
const row = e.range.getRow();
const col = e.range.getColumn();
if (col === 2) { // Status column
const val = e.value;
if (val === 'In Progress') sheet.getRange(row, 7).setValue(new Date());
if (val === 'Done') sheet.getRange(row, 8).setValue(new Date());
}
}
This records when work started and finished, enabling cycle time analysis.
Cycle Time Dashboard
With start and end timestamps, add a formula sheet that calculates average cycle time per assignee or category:
=AVERAGEIF(Tasks!C:C,A2,Tasks!H:H-Tasks!G:G)
Multiply by 24 to get hours. This surfaces bottlenecks — team members or task types that consistently take longer than expected.
Limitations at Scale
The Google Sheets kanban approach has a ceiling. At 100+ active tasks or 10+ team members, these issues emerge:
- Filter views become hard to manage as team grows
- Apps Script triggers slow down as the sheet grows
- No card-level comment threads — feedback lives in spreadsheet comments
- Mobile experience is poor — Sheets on mobile isn't a good board UI
When to Migrate
Signs it's time to move to a dedicated tool: the sheet has more than 200 rows, team members frequently ask "where do I find X?", or you're spending more time maintaining the sheet than doing project work. For teams wanting to stay in Google's ecosystem, TaskGrid provides a native visual kanban board built on top of Google Sheets data.