title: Google Sheets circular dependency error for task management sheet with task dependencies
body: <p>I have made a sample sheet to show my issue: <a href="https://docs.google.com/spreadsheets/d/1YZvdHBT3G9gLM8qhas_LSPWU4prVGoOTbY6pRo1IUA0/edit?usp=sharing" rel="nofollow noreferrer">https://docs.google.com/spreadsheets/d/1YZvdHBT3G9gLM8qhas_LSPWU4prVGoOTbY6pRo1IUA0/edit?usp=sharing</a>.</p>
  
  <p>I am trying to make a task manager. Tasks have:</p>
  
  <ul>
  <li>Dependencies to other tasks</li>
  <li>Completed status - provided by the user</li>
  </ul>
  
  <p>A task is eligible to be completed only when all of its dependency tasks have been completed. </p>
  
  <p>Here is what I have and what I am trying to do:</p>
  
  <p><code>Tasks</code> sheet:</p>
  
  <ul>
  <li><code>Task Name</code></li>
  <li><code>User Input - Is Completed</code> - this is where the user would specify if the task is completed</li>
  <li><code>Formula - Are Pre-Requisites Met</code> - formula to determine if this task's dependencies have been met; more below</li>
  <li><code>Formula - Is Really Completed</code> - formula; a task is only really eligible to be completed when all of its pre-requisites are met</li>
  </ul>
  
  <p><code>Dependencies</code> sheet:</p>
  
  <ul>
  <li><code>Task Name</code> - Parent task</li>
  <li><code>Pre-Requisite - Task Name</code> - child/dependent task</li>
  <li><code>Pre-Requisite - Formula - Is Really Completed</code> - the value of <code>Formula - Is Really Completed</code> from the <code>Tasks</code> sheet for this row's <code>Pre-Requisite - Task Name</code> (the child/dependent task)</li>
  </ul>
  
  <p>My thought is:</p>
  
  <ul>
  <li>On the <code>Dependencies</code> sheet, for each pre-requisite task, look it up in the <code>Tasks</code> sheet and see if it's really done (<code>Is Really Completed</code>)</li>
  <li>Then, on the <code>Tasks</code> sheet, for each <code>Task Name</code>, check the status of each of its pre-requisite task in the <code>Dependencies</code> sheet and make sure all are really done.</li>
  </ul>
  
  <p>The issue is this leads to a circular reference error. But I don't think it should. Task B is dependent on task A so to determine if task A is really done we are only checking if task B is done. So there isn't a circular reference.</p>
  
  <p>Not sure how to solve this...</p>