Disclaimer: I am posting this answer that doesn't exactly answer the asker's question because this is the answer I needed when this question was the first result on Google, and I want to help the next person who has the same question I did.
This may not be the prettiest formula, but the result is the prettiest I could manage. Here's the Google Sheets formula that I used to articulate the difference between today and something that happened a while ago, assuming the F2
cell contains a date:
=IF(DATEDIF(F2,TODAY(),"Y")>0,DATEDIF(F2,TODAY(),"Y")&" year"&IF(DATEDIF(F2,TODAY(),"Y")=1,", ","s, ")&DATEDIF(F2,TODAY(),"YM")&" month"&IF(DATEDIF(F2,TODAY(),"YM")=1,", ","s, "),IF(DATEDIF(F2,TODAY(),"YM")>0,DATEDIF(F2,TODAY(),"YM")&" month"&IF(DATEDIF(F2,TODAY(),"YM")=1,", ","s, "),""))&DATEDIF(F2,TODAY(),"MD")&" day"&IF(DATEDIF(F2,TODAY(),"MD")=1,"","s")
Assuming today is 2020-03-09, here are some example results of this formula:
column F | column G
--------------------------------------
2020-02-14 | 24 days
2019-10-08 | 5 months, 1 day
2019-06-14 | 8 months, 24 days
2019-04-05 | 11 months, 4 days
2019-03-09 | 1 year, 0 months, 0 days
2019-02-01 | 1 year, 1 month, 8 days
2018-12-07 | 1 year, 3 months, 2 days
2018-03-04 | 2 years, 0 months, 5 days
2018-01-09 | 2 years, 2 months, 0 days
I ensured that:
- Pluralization is handled correctly on all units
- The highest-magnitude time units are hidden if all 0
- Lower-magnitude time units are shown even if 0 if higher-magnitude time units are above 0
You can add &" ago"
to the end of the formula if you want it to say " ago" at the end.