DarylM
¿Alguien sabe cómo puedo convertir una fecha juliana (ejemplo «116343») en una fecha del calendario?
Luchando con una fórmula Dax para esto.
¡Gracias!
bidgeir
En respuesta a DarylM
Sí, puede hacer referencia a un nombre de columna en lugar de una constante. Es lo que se recomienda.
bidgeir
Según tengo entendido, la fecha juliana, los dos primeros números son el año y los últimos 3 representan el día del año. Si eso es cierto, podría hacer algo como a continuación, donde crea una fecha a partir de los números. La siguiente fórmula solo cuenta para fechas entre 2000 y 2099 debido al código «20», pero puede usarla como un comienzo si le funciona. Por cierto, esto se hace en M o en la columna personalizada del editor de consultas, no en DAX. Espero que esté bien
Date.AddDays (Date.From (DateTimeZone.From («20» & Text.Start (Number.ToText (116343), 2) & «-01-01»)), Int64.From (Text.End (Number.ToText (116343), 3)))
Espero que puedas usarlo para algo.
khickerson
En respuesta a bidgeir
Encontré esta cadena al intentar convertir una fecha ordinal de 7 dígitos a una fecha gregoriana. Reutilicé la fórmula como se muestra a continuación (cambios en verde) y pensé que estaba funcionando a la perfección hasta que me di cuenta de que todas mis fechas son 1 día después. Esto se debe a que el número de días de 3 dígitos se agrega a «01». Intenté resolver el problema, pero sigo recibiendo errores. No soy alfabetizado en M Code. ¿Algún consejo sobre cómo se puede modificar esto?
¡Gracias!
Date.AddDays (Date.From (DateTimeZone.From («20» y Text.Start (Number.ToText ([column reference]),4) & «-01-01»)), Int64.From (Text.End (Number.ToText ([column reference]), 3)))
I_Like_Pi
En respuesta a khickerson
¿Es esto correcto? Considere el primero de enero (Julián 16001). Creo que necesitaría Menos 1 antes de que se agreguen sus días.
Lo siento si eso es una distracción. Encontré esta publicación mientras buscaba una conversión más elegante, ya que ya uso algo similar. algo que incluye quitar un día de los días agregados.
DarylM
En respuesta a I_Like_Pi
Encontré una fórmula en DAX y M que funciona para crear al convertir un julian de 6 dígitos en una fecha.
DAX
FECHA (INT (BISalesView[Date Julian]/ 1000) + 1900,1, MOD (BISalesView[Date Julian], 1000))
Lenguaje M (Editor de consultas)
Date.AddDays (#date (Number.RoundDown ([Date Julian]/ 1000) +1900,1,1), Número.Mod ([Date Julian], 1000) -1)
¡Espero que esto ayude!
I_Like_Pi
En respuesta a DarylM
Esa era la simplificación que buscaba @DarylM
Gracias
leniorcortivo
En respuesta a DarylM
Perfecto, funciona exactamente como lo necesitaba. ¡Gracias!
DarylM
En respuesta a bidgeir
Gracias.
Sin embargo, estaba equivocado en algo en mi ejemplo. la fecha es accidentalmente un código de cinco dígitos (16343). No fui capaz de modificar su fórmula para que funcione con los cinco dígitos. Además, necesitaría que esto funcione en una tabla y columna de muchas fechas julianas. ¿Puedo hacer referencia al nombre de la columna en lugar de la fecha juliana en el foro?
bidgeir
En respuesta a DarylM
Sí, puede hacer referencia a un nombre de columna en lugar de una constante. Es lo que se recomienda.