Mark Tasks as Complete When All Subtasks Are Finished in Google Sheets

Published on

In this tutorial, you’ll learn how to mark tasks as complete when all subtasks are finished in Google Sheets — automatically. This is especially useful for project tracking, where each main task (or parent task) includes multiple subtasks with different statuses like Completed, Pending, or Under Progress.

We’ll walk through a practical example using formulas that dynamically update the task status based on its subtasks. By the end, you’ll have a system that marks a task as ✅ Completed only when all its subtasks are finished — no manual tracking required.

Sample Data

Our sample dataset includes:

  • Column A: Task
  • Column B: Subtask
  • Column C: Status

Here’s how it looks:

TaskSubtaskStatus
Task #: 1: Cable LayingExcavationCompleted
Task #: 1: Cable LayingStructural WorksCompleted
Task #: 1: Cable LayingCable LayingCompleted
Task #: 1: Cable LayingCable JointingCompleted
Task #: 1: Cable LayingEnd TerminationCompleted
Task #: 1: Cable LayingBackfillingCompleted
Task #: 2: Panel ErectionInstallationCompleted
Task #: 2: Panel ErectionInternal WiringUnder Progress
Task #: 2: Panel ErectionTesting & CommissioningPending

We have two tasks:

  • Task #: 1: Cable Laying with 6 subtasks – all marked as Completed
  • Task #: 2: Panel Erection with 3 subtasks – not all are completed

So, the expected result is:

TaskStatus
Task #: 1: Cable Laying
Task #: 2: Panel Erection

Let’s create a formula to mark each task as complete when all its subtasks are finished.

Formula to Mark a Task as Complete When All Subtasks Are Finished

Here’s the formula that generates the task list along with a dynamic status column:

=ArrayFormula(
   LET(
      uq_tasks, TOCOL(UNIQUE(A2:A), 1), 
      completion, COUNTIF(A2:A, uq_tasks) = COUNTIFS(A2:A, uq_tasks, C2:C, "Completed"), 
      HSTACK(uq_tasks, completion)
   )
)

This will return a two-column array: one with unique tasks, and another showing TRUE (if all subtasks are complete) or FALSE (if not).

To make it visual:

  • Select the result column (with TRUE/FALSE)
  • Go to Insert > Tick box to format them as tick boxes.

Update Formula for Your Dataset

Make sure to adjust the ranges in the formula according to your data layout:

  • A2:A: Your Task column
  • C2:C: Your Status column

Formula Breakdown

Let’s break down how the formula works:

  • TOCOL(UNIQUE(A2:A), 1)
    Extracts a vertical list of unique parent tasks, excluding blanks.
  • COUNTIF(A2:A, uq_tasks)
    Counts how many times each task appears (i.e., number of subtasks).
  • COUNTIFS(A2:A, uq_tasks, C2:C, "Completed")
    Counts how many subtasks are marked “Completed” for each task.
  • We then compare the two counts.
    If all subtasks are completed, the result is TRUE; otherwise, it’s FALSE.
  • HSTACK(uq_tasks, completion)
    Combines the task list with the corresponding completion status into a two-column array.

That’s how you can mark tasks as complete when all subtasks are finished in Google Sheets — automatically and dynamically.

Resources

Want to expand your task management system? Check out these related tutorials:

Prashanth KV
Prashanth KV
Your Trusted Google Sheets and Excel Expert Prashanth KV is a Diamond Product Expert in Google Sheets, officially recognized by Google for his contributions to the Docs Editors Help Community and featured in the Google Product Experts Directory. Explore his blog to learn advanced formulas, automation tips, and problem-solving techniques to elevate your spreadsheet skills.

Top Discussions

More like this

Free Monthly Expense Tracker Template in Google Sheets (Dashboard Included)

A monthly expense tracker in Google Sheets helps you record daily expenses, analyze spending...

The Complete Guide to XLOOKUP in Google Sheets (15+ Practical Examples)

The XLOOKUP function largely replaces traditional lookup functions such as LOOKUP, VLOOKUP, and HLOOKUP...

How to Sort and Filter Pivot Tables in Google Sheets (Complete Guide)

Sorting and filtering are two of the most important techniques for analyzing data in...

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.