Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hola.
Nuestra empresa trabaja en períodos (un período de 4 semanas, no necesariamente alineado con un mes) y necesito formatear un valor de fecha en consecuencia.
Si una fecha es en o entre 21. Mayo 2023 y 17. Junio de 2023 debe mostrar "P6" (para el período 6).
Continuando en una roación de 4 semanas:
18. junio 2023 - 15. Julio 2023 "P7"
16. julio 2023 - 12. Agosto 2023 "P8"
y así sucesivamente.
Soy bastante nuevo en todo esto y una función IF no funcionó y me dio un mensaje de error.
¿Alguien puede echarme una mano con esto?
Gracias
El primer período siempre comienza alrededor de Año Nuevo, más/menos unos pocos días. Cada período dura 4 semanas y comienza el primer domingo y termina el último sábado. Hay 13 períodos y después del período 13 comienza una nueva rotación.
Sin embargo, ahora encontré una solución.
Eh
Puede realizar esta tarea creando una nueva columna y, posteriormente, mediante la fórmula DAX.
PeriodCode =
VAR CurrentDate = YourTableName[DateColumn]
VAR StartDate = FECHA(2023, 5, 21) // Actualizar con la fecha de inicio deseada
VAR DaysDiff = DATEDIFF(StartDate, CurrentDate, DAY)
VAR PeriodNumber = TECHO(DíasDiff / 28, 1)
DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
AND(DaysDiff >= 0, DaysDiff < 28), "P" & PeriodNumber,
AND(DaysDiff >= 28, DaysDiff < 56), "P" & (PeriodNumber + 1),
AND(DaysDiff >= 56, DaysDiff < 84), "P" & (PeriodNumber + 2),
Agregue más casos para otros períodos según sea necesario
"Desconocido"
)
Después de eso, en la pestaña de modelado, cambie el formato a texto y después de usar la nueva columna calculada, puede lograr la salida deseada.
Gracias. Espero que esto ayude.
¿Tengo algunas preguntas?
1. ¿El período siempre comienza desde P6? ¿Qué pasa con la fecha anterior al 21/5/2023?
2. ¿Qué pasa con el próximo año? ¿Tendremos una nueva fecha de inicio o simplemente mantendremos la roation del 2023/5/21?
Hola @Mischi
Ver PBIX adjunto.
Es mejor agregar la columna de período en Power Query en lugar de DAX.
En el ejemplo establezco que P1 comienza el 1/1/2023, por lo que trajo fechas para todo el año 2023 como ejemplo.
1 - Crear una columna de índice que comience con 1. Esto numera cada fila del 1 al 365
2 - Agregar columna Step1_PeriodNo - esto realiza una división entera en el índice para dar una división sin ningún resto. Pero esto no maneja el día 28/56, etc. Así que si la declaración en PQ para manejar.
3 - Añadir columna Step2_PeriodNo - concatenar P y el número del paso anterior.
Los pasos 2 y 3 anteriores no son necesarios, pero solo para aprender. La columna Período combina esta lógica y es todo lo que necesita en su modelo.
Para obtener la ordenación correcta para los objetos visuales de Power BI, puse un cero inicial mediante Text.PadStart. Entonces, si está satisfecho con P06 en lugar de P6, todos hemos terminado. Si es absolutamente necesario que lea P6, una vez en Power BI, ponga una ordenación en Step1_PeriodNo.
Hay un par de otras cosas para administrar aquí, por ejemplo, varios años y el último día del año: P13 o P1.
Pero esto debería ponerte en marcha.
Otro recurso a tener en cuenta es la tabla de fechas extendida de la experta en EDNA Melissa de Kort que administra las semanas ISO, etc. y puede tener lo que necesita.
¿Respondí a su pregunta? ¡Marca mi publicación como una solución! ¡Aprecio tus felicitaciones! ¡Feliz de ayudar! !
Pete
Sitio web: https://binavigation.com
Enlazado en: https://www.linkedin.com/in/pete-smith-955b73181
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.