Aug 19, 2022 03:45 AM
Hi people!
I’m building a “Birthdays” table in my “Calendar” base and I’m looking for a formula that says:
if “Birthday” is within the next 2 months then display “soon”
What would this formula look like?
Solved! Go to Solution.
Aug 21, 2022 06:01 AM
Sorry! More complicated than I first realised. Try this:
IF(AND(SUM(DATETIME_FORMAT(TODAY(), "M")-DATETIME_FORMAT({Birthday}, "M"))<=2, SUM(DATETIME_FORMAT(TODAY(), "M")-DATETIME_FORMAT({Birthday}, "M"))>-1), "Soon")
This should work for any date given in {Birthday}, regardless of year.
Aug 20, 2022 10:39 AM
IF(DATETIME_DIFF(TODAY(), {Birthday}, "months")<=2, "Soon")
Aug 21, 2022 03:23 AM
Thanks Jonathan!
I’m still having a problem here. No errors from the formula but the formula labels ALL of the records as “Soon” in the formula field regardless of date.
Aug 21, 2022 06:01 AM
Sorry! More complicated than I first realised. Try this:
IF(AND(SUM(DATETIME_FORMAT(TODAY(), "M")-DATETIME_FORMAT({Birthday}, "M"))<=2, SUM(DATETIME_FORMAT(TODAY(), "M")-DATETIME_FORMAT({Birthday}, "M"))>-1), "Soon")
This should work for any date given in {Birthday}, regardless of year.
Aug 22, 2022 08:05 AM
It works! but I have to filter out next years birthdays or it goes a bit haywire and can’t be filtered using the “Soon” field once the formula is used.
Jun 23, 2023 10:38 AM - edited Jun 23, 2023 10:57 AM
Hi everyone. I think I have the definitive formula based on the birthdate .
IF(
DATETIME_DIFF(
DATETIME_PARSE(CONCATENATE(YEAR(TODAY()), '-', DATETIME_FORMAT({Birthdate}, 'MM'), '-', DATETIME_FORMAT({Birthdate}, 'DD'))),
TODAY(),
'days'
) < 0,
DATEADD(DATETIME_PARSE(CONCATENATE(YEAR(TODAY()), '-', DATETIME_FORMAT({Birthdate}, 'MM'), '-', DATETIME_FORMAT({Birthdate}, 'DD'))), 1, 'year'),
DATETIME_PARSE(CONCATENATE(YEAR(TODAY()), '-', DATETIME_FORMAT({Birthdate}, 'MM'), '-', DATETIME_FORMAT({Birthdate}, 'DD')))
)
Best regards
Oct 11, 2023 10:33 AM
Hello, this is great! But it's giving me a day behind. So if the birthdate is 09/30/1988, the formula is showing 09/29/2024 instead of the 30th.