Daily Habits Filter Help Please!

Hi guys,

So I’ve finally gotten sick of having to reschedule the Do Date on ‘Daily’ habits I have not done from day to day and thought of a better solution but can’t seem to get it into a filter formula format.

What I am trying to do within the “Tasks: Habits To Do (My Day)” table, where I have all of my Daily habits to view, with NO Do Date set. When I click the Done button:

  • I want it to put Today() as the Do Date and set it as Complete (this part I have done).

The problem I can’t solve is:

I want the “Tasks: Habits To Do (My Day)” table to only show the Habits that have not been ‘Completed’ that have both of these two criteria (within the Tasks: Habits (Complete) table):

  1. Have the same name as the task within “Tasks: Habits To Do (My Day)” table.
  2. Do not have a Do Date that is Today().

So in a practical example when I click Done on a Daily Habit (Brush Teeth for example):

  1. The Done button creates a new ‘Brush Teeth’ habit with the same properties as original.
  2. Turns the original Brush Teeth habit Status to ‘Complete’ and adds Today() as Do Date
  3. Table now FILTERS out the new ‘Brush Teeth habit’ from the “Tasks: Habits To Do (My Day)” table because the habit was Complete today.

Hi @Youssef_Iskander,

I think I understand what you are looking for. You suggestiong of filtering based on if the tasks has a matching task that was completed today can be done but will be inefficient as it will require a formula to run a filter and count on the table per row.

I have modified your document as follows.

On the Tasks: Habits To Do (My Day) table I have added a filter to exclude any rows created today. This means that when you complete a row and it makes a new one, the new row will not show until tomorrow.

I have also create a test button for you. The button you have to mark tasks complete and copy to a new row uses AddRow and you are manually setting each column to be a copy of the existing rows data. You can accomplish this much easier with the DuplicateRows function.


Used like this the duplicate function creates an exact duplicate of the current row and also allows you to manipulate the data of the new row if needed however I do not think this is required in your scenario.

I hope that this helps.

All the best


This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.