# How do I create a MoM variance formula when the date format and interval varies for all entries?

Member

Here is a sample data, where F11 is for month of November, F10 is for month of October-

• Coach

I would start by standardizing the date variable. You could use str_to_date:

CASE

WHEN left(`Date`,1) = 'F' then str_to_date( concat(`Date`,2023), 'F%c%Y')

ELSE str_to_date( `Date`, '%d-%b-%y')

END

Here's an article on different date transforms:

And the different codes for date formats:

• Coach

Can you describe in plain words what you expect the above formula to do? At a Row level the MAX(`Col`) of something is always going to be the same value as `Col` making your denominator to always be 0, causing an error and therefore displaying no data.

To fix this you'll need to have some sort of aggregation function around your values, providing a table or image that illustrates what the desired final outcome would be is often helpful. If is just a single value for the current month this might be achievable (or the latest month), but if you want a table that shows this on a monthly basis, it's likely you might want to leverage Magic ETL instead.

• Coach

I would start by standardizing the date variable. You could use str_to_date:

CASE

WHEN left(`Date`,1) = 'F' then str_to_date( concat(`Date`,2023), 'F%c%Y')

ELSE str_to_date( `Date`, '%d-%b-%y')

END

Here's an article on different date transforms:

And the different codes for date formats:

• Member

I standardized the date and next I tried this formula to give variance but it's not giving me any value. Any idea what I might be doing wrong here?

CASE
when `Account` = 'Sales' then
((CASE WHEN MONTH(`Date`) = MAX(MONTH(`Date`)) THEN SUM(`Sales`) END) -
(CASE WHEN MONTH(`Date`) = MAX(MONTH(`Date`))-1 THEN SUM(`Sales`) END))
/
(CASE WHEN MONTH(`Date`) = MAX(MONTH(`Date`))-1 THEN SUM(`Sales`) END)
else 0
END

Can you describe in plain words what you expect the above formula to do? At a Row level the MAX(`Col`) of something is always going to be the same value as `Col` making your denominator to always be 0, causing an error and therefore displaying no data.