Creación de tablas de fechas

Un usuario Pregunto ✅

jdriscol

A partir de hoy (26/10/18), ¿cuál es la forma más conveniente de crear tablas de fechas en BI? Aparentemente, solía haber una función por la cual uno solo tenía que hacer clic en un solo botón para colocar una tabla de fechas en el modelo, pero aparentemente se movió o deshabilitó por completo. Gracias por cualquier comentario.

Edhans

En mi humilde opinión, la forma más rápida es:

  1. Abrir una consulta en blanco en Power Query de Power BI
  2. type = {Number.From (#date (2018,1,1)) .. Number.From (#date (2018,12,31))}
  3. Eso generará una serie de números como una lista.
  4. Conviértalo en una tabla (botón de menú superior izquierdo.
  5. Convierta el tipo ABC123 a la fecha
  6. Cambiar nombre a fecha.
  7. Ahora tienes una tabla de fechas. Agregue columnas según sea necesario (año, mes, nombre del mes, etc.) para que su tabla de fechas se adapte a sus necesidades.
  8. Cerrar y cargar.
  9. Haga clic derecho sobre él y márquelo como una tabla de fechas.

Si tiene datos de origen con fechas, póngase elegante y busque la fecha más temprana en sus datos, luego haga que la fila # 2 arriba sea 1 de enero, AAAA, donde YYYY es la fecha más temprana en su conjunto de datos,

Edhans

En respuesta a heytherejem

Entonces, si su línea original es así, solo necesita usar algunas funciones para determinar las fechas frente a la codificación.

={Number.From(#date(2018,1,1))..Number.From(#date(2018,12,31))}

Esto siempre le dará 6 meses consecutivos. He insertado muchos avances de línea para que las fórmulas sean un poco más fáciles de leer, pero puede escribir esa línea de origen en una sola línea. La clave de todo esto es DateTime.LocalNow (), que es equivalente a @NOW () en Excel, la fecha y hora actuales del reloj del sistema.

let
    Source = 
        {
            Number.From(
                Date.AddMonths(
                    DateTime.Date(
                        DateTime.LocalNow()
                    ),
                    -6
                )
            )..
            Number.From(
                DateTime.Date(
                    DateTime.LocalNow()
                )
            )          
        },
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}})
in
    #"Changed Type"

Ashish_Mathur

Hola,

Puede ir a Datos> Modelado> Nueva tabla e ingresar esta fórmula

= CALENDARIO (MIN (Datos[Date]),MAX (Datos[Date]))

Espero que esto ayude.

heytherejem

En respuesta a Ashish_Mathur

Hola @Ashish_Mathur

Me acabo de encontrar con esto y es genial, me pregunto si quería agregar 6 meses antes y después de la fecha elegida (para ampliar el alcance si quiero usar otra fecha en mi conjunto de datos). ¿Cómo puedo hacerlo?

Intenté lo siguiente que no funciona:

Calendario = CALENDARIO (MIN ((GCRTDatabase[Received Date]) -182), MAX ((GCRT Base de datos[Received Date]) +182))

Ashish_Mathur

En respuesta a heytherejem

Hola,

Esa fórmula de la nueva tabla parece correcta excepto por el corchete

Calendario = CALENDARIO (MIN (GCRTDatabase[Received Date]) -182, MAX (GCRT Base de datos[Received Date]) +182)

heytherejem

En respuesta a Ashish_Mathur

Hola @Ashish_Mathur

¡Eso funcionó perfectamente, gracias! Jugué un poco con los corchetes, pero claramente no lo hice del todo bien. 🙂

¡Eres una estrella!

Ashish_Mathur

En respuesta a heytherejem

De nada. Gracias por sus amables palabras. Si mi respuesta ayudó, márquela como Respuesta.

Edhans

En mi humilde opinión, la forma más rápida es:

  1. Abrir una consulta en blanco en Power Query de Power BI
  2. type = {Number.From (#date (2018,1,1)) .. Number.From (#date (2018,12,31))}
  3. Eso generará una serie de números como una lista.
  4. Conviértalo en una tabla (botón de menú superior izquierdo.
  5. Convierta el tipo ABC123 a la fecha
  6. Cambiar nombre a fecha.
  7. Ahora tienes una tabla de fechas. Agregue columnas según sea necesario (año, mes, nombre del mes, etc.) para que su tabla de fechas se adapte a sus necesidades.
  8. Cerrar y cargar.
  9. Haga clic derecho sobre él y márquelo como una tabla de fechas.

Si tiene datos de origen con fechas, póngase elegante y busque la fecha más temprana en sus datos, luego haga que la fila # 2 arriba sea 1 de enero, AAAA, donde YYYY es la fecha más temprana en su conjunto de datos,

MAAbdullah_47

En respuesta a Edhans

Hola @edhans

¿Qué quiere decir con «4. Conviértalo en una tabla (botón de menú superior izquierdo». Por favor, eloberar que no está claro?

Edhans

En respuesta a MAAbdullah_47

Los primeros 3 pasos generan una lista, no una tabla, por lo que se ve así:

edhans_0-1622132332771.png

MAAbdullah_47

En respuesta a Edhans

Hola @edhans
¿Qué quiere decir con (4) Convertirlo en una tabla (botón de menú superior izquierdo, esto no está claro, ya que podría eloberarlo?

heytherejem

En respuesta a Edhans

@edhans Tengo una nueva adaptación que necesito.

He creado su lista de fechas de mquery, pero en lugar de fechas codificadas, quiero incluir los 6 meses calendario anteriores, hasta el día de hoy inclusive.

Vamos.

Jemma 🙂

Edhans

En respuesta a heytherejem

Entonces, si su línea original es así, solo necesita usar algunas funciones para determinar las fechas frente a la codificación.

={Number.From(#date(2018,1,1))..Number.From(#date(2018,12,31))}

Esto siempre le dará 6 meses consecutivos. He insertado muchos avances de línea para que las fórmulas sean un poco más fáciles de leer, pero puede escribir esa línea de origen en una sola línea. La clave de todo esto es DateTime.LocalNow (), que es equivalente a @NOW () en Excel, la fecha y hora actuales del reloj del sistema.

let
    Source = 
        {
            Number.From(
                Date.AddMonths(
                    DateTime.Date(
                        DateTime.LocalNow()
                    ),
                    -6
                )
            )..
            Number.From(
                DateTime.Date(
                    DateTime.LocalNow()
                )
            )          
        },
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}})
in
    #"Changed Type"

heytherejem

En respuesta a Edhans

@edhans gracias por responderme.

Esto es casi Perfecto. Necesito el calendario completo de seis meses, no los seis meses consecutivos. Así que quiero que resulte que debería comenzar el 1 de septiembre, no el 26 de septiembre. ¿Es eso posible?

Jemma

Edhans

En respuesta a heytherejem

Si. Solo envuelve ese resultado con Date.StartOfMonth () y volverá al 1 de septiembre. Entonces sería Date.StartOfMonth (Date.AddMonths (….

heytherejem

En respuesta a Edhans

¡Muchas gracias por tu ayuda @edhans, esto me ha funcionado! 🙂

Edhans

En respuesta a heytherejem

Genial @heytherejem – me alegro de haber ayudado. Agregaré esto a las «soluciones» para este hilo si no se opone.

jdriscol

En respuesta a Edhans

Gracias por el consejo. Sin embargo, ¿sabe si alguna vez hubo una función de tabla de fecha automática en BI? Estoy seguro de que había una tabla de fechas que podía colocar en Power Pivot para Excel 2016.

Edhans

En respuesta a jdriscol

Hará fechas automáticas pero tienes poco control sobre él. El 100% del tiempo deshabilito las opciones de fecha automática en Power BI y desarrollo mi propia tabla de fechas.

¿Dónde en Excel 2016 se puede hacer una tabla de fechas automática? Corto de la función CALENDARAUTO () DAX. También puede hacer esto en DAX con la función CALENDAR (), pero prefiero crear mis tablas en Power Query. Son más compactos. Si lo hace en DAX, tiene columnas calculadas, que trato de evitar.

Y CALENDARAUTO () es muy peligroso. Si tiene algo como una tabla de campaña de marketing con fechas de vencimiento falsas como 31/12/2999, que en realidad no es raro, CALENDARAUTO () creará una tabla de calendario completa 900 años después.

Si está hablando de otra forma de hacer un calendario automático en Excel 2016, me interesaría escucharlo.

jdriscol

En respuesta a Edhans

Aquí hay un enlace a una clase de edX que tomé hace aproximadamente un año. Este video muestra cómo agregar tablas de fechas directamente dentro de PowerPivot en Excel 2016.

enlace edX

Si el enlace no funciona (o si no tiene un inicio de sesión para edX), en la ventana de PowerPivot, vaya a la cinta de Diseño, y hay una opción en la sección Calendarios para la nueva tabla de fechas.

Tabla de fecha.JPG

Edhans

En respuesta a jdriscol

Ahhh … interesante. Nunca lo intenté, ya que siempre tengo una tabla de fechas de Power Query. Esa es solo una macro con algunas columnas calculadas predefinidas. Podría ser útil, pero dependiendo del tamaño de su modelo, una tabla basada en DAX ralentizará el modelo y aumentará el tamaño del archivo.

Pero no, Power BI no tiene esa característica.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *