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
a4
Helper III
Helper III

Cómo comprobar si el 29 de febrero está entre la fecha de inicio y la fecha de finalización

Tengo una tabla (salesorderdetails) que tiene dos columnas startdate y enddate. Quiero encontrar si el 29 de febrero cae entre la columna startdate y la columna enddate.

Si el 29 de febrero cae entre startdate y endadate la salida será 366 else 365.

Encuentra encontrar debajo de la captura de pantalla de la tabla para una mejor comprensión.

Capture40.PNG

Como la fecha de inicio es 20-02-19 y la fecha final es 20-02-20 por lo que el 29 de febrero no está entre startdate y enddate entonces tendremos que mostrar 365 y si el 29 de febrero está entre la pantalla de inicio y endate 366.

Atentamente

Amoit Kumar

6 REPLIES 6
dax
Community Support
Community Support

Hola @a4 ,

Usted podría probar debajo del código M

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwtNQ30jcyUNIBso0MIOxYHaiMsb4hTALEhIpbwMWhSiDiYN1Q9YZgZmwsAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [start = _t, end = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"start", type date}, {"end", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if (Number.Mod( Date.Year([start]),4)=0 and Date.Month([start])*100+Date.Day([start])<229 ) or ( Number.Mod( Date.Year([end]),4)=0 and Date.Month([end])*100+Date.Day([end])>229)
    then 366 else 365),
    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Custom.1", each [end]-[start] )
in
    #"Added Custom1"

Puede usar esta expresión en el código M

751.PNG

Pero creo que [fin]-[comienzo] será más fácil

Saludos
Zoe Zhi

Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola Zoe,

Esta lógica fallará si la fecha de inicio es el 2 de febrero de 2020 y la fecha final es el 10 de febrero de 2020 o si la fecha de inicio es el 1 de enero de 2020 y la fecha final es el 15 de febrero de 2020 o si la fecha de inicio es el 1 de enero de 2020 y la fecha final es el 15 de febrero de 2020

Por favor, sugiera una solución.

Atentamente

Amit Kumar

dax
Community Support
Community Support

Hola @a4 ,

Puede probar a continuación el código M en la columna personalizada para ver si funciona o no

if  (try #date(Date.Year([start]),2,29) otherwise #date(1900,1,1)) >[start] and (try #date(Date.Year([start]),2,29) otherwise #date(1900,1,1))<[end] or

(try #date(Date.Year([end]),2,29) otherwise #date(1900,1,1)) >[start] and (try #date(Date.Year([end]),2,29) otherwise #date(1900,1,1))<[end] 

then 366 else 365

Saludos
Zoe Zhi

Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola Zoe,

Gracias por la solución, funcionó perfectamente.

Atentamente

Amit Kumar

amitchandak
Super User
Super User

@a4 , No estoy seguro de que tengo el problema. Pero se puede utilizar datediff >

datediff([fecha de inicio], [fecha de finalización], día)

Hola Amit,

Permítanme borrar la declaración del problema.....

Si el 29 de februaray está entre startdate y enddate, quiero crear un calculado y mostrar 366 y si el 29 de febrero no cae entre startdate y enddate quiero mostrar 365 en la columna calculada.

Para una mejor comprensión, consulte la tabla en el primer post.

Perdón por la mala expalnación.

Atentamente

Amit Kumar

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.