Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
grggmrtn
Post Patron
Post Patron

Format date/time calculation - works until I put it in VAR...

I'm not sure why this works FINE

StartDato = 
FORMAT(
CALCULATE(
        MIN( 'nexus2 Fact_VisiteretTid'[Dato] );
        ALL( 'nexus2 Fact_VisiteretTid' );
        'nexus2 Fact_VisiteretTid'[VisitationId] = EARLIER( 'nexus2 Fact_VisiteretTid'[VisitationId] )
    );"dd-mm-yyyy")

But this gives me a "can't compare type text with integer" error message:

StartDato2 = 
var currentStartDate = 
    FORMAT(
    CALCULATE(
        MIN('nexus2 Fact_VisiteretTid'[Dato]);
        ALL('nexus2 Fact_VisiteretTid');
        'nexus2 Fact_VisiteretTid'[VisitationId] = EARLIER('nexus2 Fact_VisiteretTid'[VisitationId])
    );"dd-mm-yyyy")
RETURN
IF(currentStartDate = 01-01-2015; 'nexus2 Fact_VisiteretTid'[Ikrafttraedelsesdato];currentStartDate)

 

What I'm trying to do is execute the first code, and if it's the 1st of january 2015, I need to return the value from another date column instead.

 

Any ideas?

1 ACCEPTED SOLUTION

And... I figured it out:

StartDato2 = 
var currentStartDate = 
    FORMAT(
    CALCULATE(
        MIN('nexus2 Fact_VisiteretTid'[Dato]);
        ALL('nexus2 Fact_VisiteretTid');
        'nexus2 Fact_VisiteretTid'[VisitationId] = EARLIER('nexus2 Fact_VisiteretTid'[VisitationId])
    );"dd-mm-yyyy")
RETURN
IF(currentStartDate = "01-01-2015"; FORMAT('nexus2 Fact_VisiteretTid'[Ikrafttraedelsesdato];"dd-mm-yyyy");currentStartDate)

The result of currentStartDate is text, meaning that the RETURN was setting text with a date [Ikrafttraedelsesdato], so I just needed to format that, and it's working now.

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

@grggmrtn Try adding quotes around the date: “01-01-2015". 01-01-2015 might be getting evaluated as math. 

Almost?

 

StartDato2 = 
var currentStartDate = 
    FORMAT(
    CALCULATE(
        MIN('nexus2 Fact_VisiteretTid'[Dato]);
        ALL('nexus2 Fact_VisiteretTid');
        'nexus2 Fact_VisiteretTid'[VisitationId] = EARLIER('nexus2 Fact_VisiteretTid'[VisitationId])
    );"dd-mm-yyyy")
RETURN
IF(currentStartDate = "01-01-2015"; 'nexus2 Fact_VisiteretTid'[Ikrafttraedelsesdato];currentStartDate)

 

now gives me another error message:

"Expressions that yield variant data-type cannot be used to define calculated columns. "

😞

And... I figured it out:

StartDato2 = 
var currentStartDate = 
    FORMAT(
    CALCULATE(
        MIN('nexus2 Fact_VisiteretTid'[Dato]);
        ALL('nexus2 Fact_VisiteretTid');
        'nexus2 Fact_VisiteretTid'[VisitationId] = EARLIER('nexus2 Fact_VisiteretTid'[VisitationId])
    );"dd-mm-yyyy")
RETURN
IF(currentStartDate = "01-01-2015"; FORMAT('nexus2 Fact_VisiteretTid'[Ikrafttraedelsesdato];"dd-mm-yyyy");currentStartDate)

The result of currentStartDate is text, meaning that the RETURN was setting text with a date [Ikrafttraedelsesdato], so I just needed to format that, and it's working now.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.