Do you have a lot of tasks or habits to complete, but don’t want to create checkbox properties for each of them? Here’s an alternative way to track progress of multiple items using a “Multi-Select” property rather than checkboxes.
Create a multi-select property containing a list of all of your items. In our example we are using tasks that need to be completed as part of an onboarding process. We are calling this property “Completed Tasks”.
Now we are going to use a formula to count how many of the options have been selected. We do this using the length()
function (which was changed in Formulas 2.0 to operate on lists) to count up the total items in our completed rollup. Name this property “Completed Count”.
length(prop("Completed Tasks"))
Next, we are going to calculate how many tasks are remaining that have not been selected. This requires knowing how many total tasks we have (in this example we have 7 tasks), then we can subtract the “Completed Count” from this number.
7 - prop("Completed Count")
To find out what percentage of tasks are completed, we perform some basic math – divide the completed count by the total count, and round to get a nice, clean number. We call this property “Percent Complete”.
format(round(prop("Completed Count") / 7 * 100)) + "%"
You may also want a checkbox to dynamically calculate if all tasks have been completed. This can be used in sorting and filtering. We name this property “Done”, and add a formula:
if(prop("Percent Complete") == "100%", true, false)
This method can be used to conserve real estate and replace other systems that rely on many checkboxes.
DUPLICATE NOTION TEMPLATE