Forum Discussion

Stuznet's avatar
Stuznet
Helper V
7 years ago
Solved

Multiple IF ISBLANK Condition

Hi,

I’m struggling create an Aging Column and handle the blank.

I created a calculated column
Aging =
VAR DaysBtwn = IF(ISBLANK([Date1]), BLANK(), IF(ISBLANK([Date2), BLANK(), ([DATE1] - [Date2]) *1.))

RETURN
IF(ISBLANK(DaysBtwn), BLANK(),
IF(AND(DaysBtwn <31, “0-30 Days”, DaysBtwn <61, “30-60 Days”, “61+ Days”)))))

How do I write this formula properly without getting an error?


Much appreciated!
  • Stuznet -

     

    AND ( ) only takes two arguements so you'd have to nest if you wanted to go that way.

     

    The following seems to work in my small sample that I created, possibly it will work for your data:

     

    Aging =
    VAR DaysBtwn =
        IF (
            ISBLANK ( Table1[DATE1] ),
            BLANK (),
            IF (
                ISBLANK ( Table1[DATE2] ),
                BLANK (),
                ( Table1[DATE1] - Table1[DATE2] ) * 1
            )
        )
    RETURN
        IF (
            ISBLANK ( DaysBtwn ),
            BLANK (),
            SWITCH (
                TRUE (),
                DaysBtwn < 31, "0-30 Days",
                DaysBtwn < 61, "30-60 Days",
                DaysBtwn >= 61, "61+ Days"
            )
        )

     

4 Replies

  • ChrisMendoza's avatar
    ChrisMendoza
    Resident Rockstar

    Stuznet -

     

    AND ( ) only takes two arguements so you'd have to nest if you wanted to go that way.

     

    The following seems to work in my small sample that I created, possibly it will work for your data:

     

    Aging =
    VAR DaysBtwn =
        IF (
            ISBLANK ( Table1[DATE1] ),
            BLANK (),
            IF (
                ISBLANK ( Table1[DATE2] ),
                BLANK (),
                ( Table1[DATE1] - Table1[DATE2] ) * 1
            )
        )
    RETURN
        IF (
            ISBLANK ( DaysBtwn ),
            BLANK (),
            SWITCH (
                TRUE (),
                DaysBtwn < 31, "0-30 Days",
                DaysBtwn < 61, "30-60 Days",
                DaysBtwn >= 61, "61+ Days"
            )
        )

     

  • jsh121988's avatar
    jsh121988
    Microsoft Employee

    Try this and use && instead of AND() and || instead of OR() for cleaner code:

    AgeDays = 
    // If either is blank, then nDays wil be blank
    VAR nDays = DATEDIFF([Date1],[Date2],SECOND) / 60 / 60 / 24

    SWITCH( TRUE(),
    nDays < 31, "0-30 Days",
    nDays < 61, "30-60 Days",
    nDays >= 61, "61+ Days",
    BLANK()
    )

     

     

  • Anonymous's avatar
    Anonymous
    Not applicable
     
    TRY THIS
    DAYSDIFF =
    VAR DAYS = IF(OR(ISBLANK(Table[date1]),ISBLANK(Table[date2])),BLANK(),DATEDIFF(Table[date1],Table[date2],DAY))
    RETURN IF(DAYS <31, "0-30 Days" , DAYS <61, "30-60 Days" , "61+ Days")