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.
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.
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
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
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
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
@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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |