Skip to main content

We 're a nonprofit, and we keep a database of foundations to which we plan to apply for grants. Some of them have no deadlines, while others have 1, 2, 3, or 4 deadlines per year.


We record each deadline in a separate column/field (we’re using the free version, so we can’t access the multiple dates feature), with field titles {Deadline 1}, {Deadline 2}, etc.


We now have a new field that outputs the next deadline in reader-friendly format, if there is one, based on a thorough nesting of IF() statements. Here, the statement names “IF2”, “IF3”, etc. are for keeping track of things while assembling, but the final assembly at the end just includes the conditional statements.


IF1: If Deadline 1 is blank, blank, else IF2

IF({Deadline 1}=BLANK(), BLANK(), IF2)


IF2: If Deadline 1 is after today, Deadline 1, else IF3

IF(IS_AFTER({Deadline 1}, TODAY()), DATETIME_FORMAT({Deadline 1}, 'll'), IF3)


IF3: If Deadline 2 is blank, IF9, else IF4

IF({Deadline 2}=BLANK(), IF9, IF4)


IF4: If Deadline 2 is after today, Deadline 2, else IF5

IF(IS_AFTER({Deadline 2}, TODAY()), DATETIME_FORMAT({Deadline 2}, 'll'), IF5)


IF5: If Deadline 3 is blank, IF9, else IF6

IF({Deadline 3}=BLANK(), IF9, IF6)


IF6: If Deadline 3 is after today, Deadline 3, else IF7

IF(IS_AFTER({Deadline 3}, TODAY()), DATETIME_FORMAT({Deadline 3}, 'll'), IF7)


IF7: If Deadline 4 is blank, IF9, else IF8

IF({Deadline 4}=BLANK(), IF9, IF8)


IF8: If Deadline 4 is after today, Deadline 4, else IF9

IF(IS_AFTER({Deadline 4}, TODAY()), DATETIME_FORMAT({Deadline 4}, 'll'), IF9)


IF9: If Deadline 1 is blank, blank, else Deadline 1 + 365 days

IF({Deadline 1}=BLANK(), BLANK(), DATETIME_FORMAT(DATEADD({Deadline 1}, 1, 'year'), 'll'))


Added all together:


IF({Deadline 1}=BLANK(), BLANK(),IF(IS_AFTER({Deadline 1}, TODAY()), DATETIME_FORMAT({Deadline 1}, 'll'), IF({Deadline 2}=BLANK(), IF({Deadline 1}=BLANK(), BLANK(), DATETIME_FORMAT(DATEADD({Deadline 1}, 1, 'year'), 'll')), IF(IS_AFTER({Deadline 2}, TODAY()), DATETIME_FORMAT({Deadline 2}, 'll'), IF({Deadline 3}=BLANK(), IF({Deadline 1}=BLANK(), BLANK(), DATETIME_FORMAT(DATEADD({Deadline 1}, 1, 'year'), 'll')), IF(IS_AFTER({Deadline 3}, TODAY()), DATETIME_FORMAT({Deadline 3}, 'll'),IF({Deadline 4}=BLANK(), IF({Deadline 1}=BLANK(), BLANK(), DATETIME_FORMAT(DATEADD({Deadline 1}, 1, 'year'), 'll')), IF(IS_AFTER({Deadline 4}, TODAY()), DATETIME_FORMAT({Deadline 4}, 'll'), IF({Deadline 1}=BLANK(), BLANK(), DATETIME_FORMAT(DATEADD({Deadline 1}, 1, 'year'), 'll'))))))))))


I wrote this in a text editor and copied over to the formula field. If this throws an error, the most common cause I found was the format of the apostrophes around ‘ll’.

What about having a Deadlines table linked to the Foundations table? And you could use a Rollup field with a Max formula in a date field.


What about having a Deadlines table linked to the Foundations table? And you could use a Rollup field with a Max formula in a date field.


We want to keep track of the next deadline for each foundation, not the last one.


For example, today is June 6, and if XYZ Foundation has deadlines of 1/1, 4/1, 7/1 and 10/1, we’d like to know that the 7/1 deadline is coming up.


I have a similar setup, and would be interested in knowing how to do this.


Reply