Habit Tracker Streak for Habits That Aren't Daily Google Sheets

crutty

New Member
Joined
Jul 15, 2019
Messages
2
I am building a habit tracker where my habits are the columns and each day is a row. Near the top, I have a 'streak' row which is meant to be how many days from today that I have successfully completed the habit. I have managed to figured out a way to calculate this field for habits that are daily. However, a couple of my habits are not daily. For example, they may be every Monday and Thursday, or only on Wednesdays, etc. If I complete say the 'every Wednesday habit' every Wednesday, I want the streak to reflect that I am doing it each time.

Additionally, I have another row that calculates overall percentage of habit completion. This one should be easier, but still might be more complicated for habits that aren't daily.

As someone who is familiar but by no means an expert at Excel, I'm not really sure where to start. Spent a couple hours googling with no success, so if you can help me out I'd greatly appreciate it!

(Note: I'm actually working this in Google Sheets so I will link an example, but I figure other than formatting the formula to be an array formula there should really be no difference.)


Here is the link. The cells in yellow are the one's I need help with! Thanks so much and let me know if I need to do anything else.

https://docs.google.com/spreadsheets/d/11m989S7Bvt7GmiRE8lFJUYtU1AbcGxOo8raqaoaz16Q/edit?usp=sharing
 

Some videos you may like

Excel Facts

Will the fill handle fill 1, 2, 3?
Yes! Type 1 in a cell. Hold down Ctrl while you drag the fill handle.

crutty

New Member
Joined
Jul 15, 2019
Messages
2
Re: Habit Tracker Streak for Habits That Aren't Daily

Just for reference, the formula I am using to calculate the streak for daily habits is (Example for cell C3):
=IFERROR(ARRAYFORMULA(MAX(IF(C5:C=TRUE,ROW(C5:C))))-ARRAYFORMULA(MAX(IF(C5:INDIRECT("C"&ARRAYFORMULA(MAX(IF(C5:C=TRUE,ROW(C5:C)))))=FALSE,ROW(C5:C),4))),0)

For the 'Overall %' row it is (Example for cell C4):
=IFERROR(COUNTIF(C5:C,TRUE)/COUNTA(C5:INDIRECT("C"&ARRAYFORMULA(MAX(IF(C5:C=TRUE,ROW(C5:C)))))))
 

Ynwaps

New Member
Joined
Sep 11, 2019
Messages
1
Re: Habit Tracker Streak for Habits That Aren't Daily

Hey crutty,
I was looking for a habit streak formula and found your thread here on google.
Anyway it worked very well so I have improved your sheet a bit:
https://docs.google.com/spreadsheets/d/1-2Oihk_aN13n6ZqEoyD0qBrlfPJtf17RpHKKNXpL438/edit?usp=sharing

The only thing that is not working yet is to calculate streaks on off gym days for example.
But the overall% is correct.

Anyway feel free to improve this sheet further. I only registered here to give back :)
Enjoy!
 

bencole123

New Member
Joined
Jan 21, 2020
Messages
1
Platform
MacOS
Hey crutty, or Ynwaps, do you know how to translate this to apple numbers? is arrayformula the same thing as Index in apple numbers? I got the overal % to work but i need the streak to convert and im having trouble.
 

Watch MrExcel Video

Forum statistics

Threads
1,102,872
Messages
5,489,433
Members
407,689
Latest member
Doublealpha

This Week's Hot Topics

  • Timer in VBA - Stop, Start, Pause and Reset
    [CODE=vba][/CODE] Option Explicit Dim CmdStop As Boolean Dim Paused As Boolean Dim Start Dim TimerValue As Date Dim pausedTime As Date Sub...
  • how to updates multiple rows in muliselect listbox
    Hello everyone. I need help with below code. code is only chaning 1st row in mulitiselect list box. i know issue with code...
  • Delete Row from Table
    I am trying to delete a row from a table using VBA using a named range to find what I need to delete. My Range is finding the right cell. In the...
  • Assigning to a variable
    I have a for each block where I want to assign the value in column 5 of the found row to the variable Serv. [CODE=vba] For Each ws In...
  • Way to verify information
    Hi All, I don't know what to call this formula, and therefore can't search. I have a spreadsheet with information I want to reference...
  • Active Cell Address – Inactive Sheet
    How to use VBA to get the cell address of the active cell in an inactive worksheet and then place that cell address in a location on the current...
Top