Skip to main content

Hello everyone,

Trying to come up with a formula using Chat GPT (and some tweaking) to create a formula field type that displays a subscription's (record) amount in a cell based on budget status and the payment schedule.

I want to create a formula that checks the following conditions:

  1. The Payment Schedule is "Annually."
  2. And one of the following is met:
    • a. Budget Status is "Projected" and Renewal Date is within the specified range.
    • b. Budget Status is "Actual" and Purchase Date is within the specified range.

If these 2 conditions are met, it displays the {Subscription Amount}. If none of the conditions are met, it will display "Conditions not met".

Here's the code:

 

 

IF(
AND(
{Payment Schedule} = "Annually",
OR(
AND(
{Budget Status} = "Projected",
{Renewal Date} > DATETIME_PARSE("2023-01-01"),
{Renewal Date} < DATETIME_PARSE("2023-02-01")
),
AND(
{Budget Status} = "Actual",
{Purchase Date} > DATETIME_PARSE("2023-01-01"),
{Purchase Date} < DATETIME_PARSE("2023-02-01")
)
)
),
{Subscription Amount},
"Conditions not met"
)

 

 

I keep getting the Conditions not met message even tho one of my records matches the conditions:

Can someone please help me figure it out?

Thanks 🙂

 

Hi Gabriel,

Have you tried adding a date format to the datetime_parse formulas? EG:

DATETIME_PARSE("2023-01-01", "YYYY-MM-DD")

Failing that, check that your date lookup fields are formatted as dates.

Edit field -> Formatting -> Date format -> ISO

Thanks,

Josh


Hi Gabriel,

Have you tried adding a date format to the datetime_parse formulas? EG:

DATETIME_PARSE("2023-01-01", "YYYY-MM-DD")

Failing that, check that your date lookup fields are formatted as dates.

Edit field -> Formatting -> Date format -> ISO

Thanks,

Josh


Hi @jwag,

Adding the date format didn't change anything.

My lookup fields are formatted as dates using the ISO option:

Should I raise a support ticket?

Thanks for your help on this? 🙂


Hi Gabriel! You might want to use IS_BEFORE() and IS_AFTER() to describe the relationship between the {Renewal Date} and your DATETIME_PARSE(). ">" and "<" are numerical operators, so they won't work correctly on a datetime output. You could try something like the below:

 

IF(
AND(
{Payment Schedule} = "Annually",
OR(
AND(
{Budget Status} = "Projected",
IS_AFTER(
{Renewal Date},
DATETIME_PARSE("2023-01-01")
),
IS_BEFORE(
{Renewal Date},
DATETIME_PARSE("2023-02-01")
)
),
AND(
{Budget Status} = "Actual",
IS_AFTER(
{Purchase Date},
DATETIME_PARSE("2023-01-01")
),
IS_BEFORE(
{Purchase Date},
DATETIME_PARSE("2023-02-01")
)
)
)
),
"Subscription Amount",
"Conditions not met"
)

 


Hi Everyone, 

I made some trials and errors and made the formula work by writing it like this:

IF(
AND(
{Payment Schedule} = "Annually",
OR(
AND(
{Budget Status} = "Projected",
{Renewal Date (from Subscriptions)} > ("2023-01-01"),
{Renewal Date (from Subscriptions)} < ("2023-02-01")
),
AND(
{Budget Status} = "Actual",
{Purchase Date (from Subscriptions)} > ("2023-01-01"),
{Purchase Date (from Subscriptions)} < ("2023-02-01")
)
)
),
{Subscription Amount},0
)

Thank you everyone for having a look 🙂

Gabriel


Reply