Asana sections in a live spreadsheet

Add the Sections table to a sheet as a data source named sections and its 11 columns become names your formulas, pivot tables and charts use. Sheets reads it from your Asana workspace each time the sheet opens or refreshes.

Custom fields are columns too, named like the field. Portfolios, goals and time entries need one of Asana's paid plans; on a free workspace those tables are empty.

Formulas on this table

=data.sections.sum(tasks)
Total tasks. Adds up the Tasks column over every row of Sections.
=data.sections.sum(tasks, name, A2)
Tasks per name. With a name in A2, the total for that one. Fill it down next to a list of them.
=list.sections(name)
Every name, once. Spills the distinct name values down the column: the row labels for the formula above.
=data.sections.sum(tasks, project_due_date, ">=2026-01-01")
Since a date. Only rows whose Project: Due date is on or after 1 January 2026. Criteria such as ">=", "<" and "<>" work as in any spreadsheet.
=data.sections.count(id, name, "<>")
Rows with a name. Counts the rows whose Name is not empty.
=data.sections.avg(open_tasks)
Average open tasks. avg, min, max, count, countd (distinct) and first work the same way as sum.

Columns

ColumnIn formulasType
IDidText
NamenameText
ProjectprojectText
Project IDproject_idText
TaskstasksWhole number
Open tasksopen_tasksWhole number
Project: Ownerproject_ownerText
Project: Teamproject_teamText
Project: Archivedproject_archivedYes / no
Project: Completedproject_completedYes / no
Project: Due dateproject_due_dateDate

Other work tables

Your sections, live

Tasks, projects, people, portfolios, goals and time entries become tables that formulas, pivot tables and charts read directly. Open and overdue work, workload per person and completion trends stay current without exporting.