Bombero1017
Hola
He estado experimentando los filtros de fecha relativa últimamente.
Especialmente seleccionando las últimas x semanas del calendario.
Entonces me encontré con algunos resultados extraños que no entiendo completamente.
Así que tengo esta tabla de fechas donde he creado una columna [Semana] que me da el número de semana de esta fórmula:
YEAR([Date])&"-W"&WEEKNUM([Date])
Usé una notación ISO para no tener que hacer ningún cálculo para secuenciarlo correctamente a lo largo de los años.
No tengo el guión para la tabla de fechas. Pero digamos que tiene columnas [Fecha] y [Semana].
Luego filtro esta tabla usando el campo [Fecha] usando un filtro Fecha real como este: «Últimas 52 semanas calendario».
A continuación, puse un objeto visual de la tarjeta que muestra el recuento distinto de [Semana].
Y ahora me muestra 53. (wtf ???)
Extraje esta tabla que muestra el inicio y el final de cada semana y la semana:
Semana del KPI # | Inicio de la semana | Fin de semana |
2019-S46 | 10/11/2019 | 16/11/2019 |
2019-S47 | 17/11/2019 | 23/11/2019 |
2019-S48 | 24/11/2019 | 30/11/2019 |
2019-S49 | 01/12/2019 | 7/12/2019 |
2019-W50 | 8/12/2019 | 14/12/2019 |
2019-S51 | 15/12/2019 | 21/12/2019 |
2019-S52 | 22/12/2019 | 28/12/2019 |
2019-S53 | 29/12/2019 | 1/4/2020 |
2020-S01 | 29/12/2019 | 1/4/2020 |
2020-S02 | 5/1/2020 | 11/01/2020 |
2020-S03 | 12/01/2020 | 18/01/2020 |
2020-S04 | 19/01/2020 | 25/1/2020 |
2020-S05 | 26/01/2020 | 1/2/2020 |
2020-S06 | 2/2/2020 | 8/2/2020 |
2020-S07 | 9/02/2020 | 15/02/2020 |
2020-S08 | 16/02/2020 | 22/02/2020 |
2020-S09 | 23/02/2020 | 29/02/2020 |
2020-S10 | 1/3/2020 | 07/03/2020 |
2020-S11 | 8/03/2020 | 14/03/2020 |
2020-S12 | 15/03/2020 | 21/03/2020 |
2020-S13 | 22/03/2020 | 28/03/2020 |
2020-S14 | 29/03/2020 | 4/4/2020 |
2020-S15 | 5/4/2020 | 11/4/2020 |
2020-S16 | 12/4/2020 | 18/4/2020 |
2020-S17 | 19/4/2020 | 25/4/2020 |
2020-S18 | 26/4/2020 | 2/5/2020 |
2020-S19 | 3/5/2020 | 9/5/2020 |
2020-S20 | 10/5/2020 | 16/05/2020 |
2020-S21 | 17/05/2020 | 23/05/2020 |
2020-S22 | 24/5/2020 | 30/05/2020 |
2020-S23 | 31/05/2020 | 6/6/2020 |
2020-S24 | 7/6/2020 | 13/6/2020 |
2020-S25 | 14/6/2020 | 20/6/2020 |
2020-S26 | 21/6/2020 | 27/6/2020 |
2020-S27 | 28/6/2020 | 4/7/2020 |
2020-S28 | 5/7/2020 | 11/7/2020 |
2020-S29 | 12/7/2020 | 18/7/2020 |
2020-S30 | 19/7/2020 | 25/7/2020 |
2020-S31 | 26/7/2020 | 1/8/2020 |
2020-S32 | 02/08/2020 | 8/8/2020 |
2020-S33 | 9/8/2020 | 15/8/2020 |
2020-S34 | 16/8/2020 | 22/8/2020 |
2020-S35 | 23/8/2020 | 29/8/2020 |
2020-S36 | 30/8/2020 | 5/9/2020 |
2020-S37 | 6/9/2020 | 12/09/2020 |
2020-S38 | 13/09/2020 | 19/09/2020 |
2020-S39 | 20/9/2020 | 26/09/2020 |
2020-S40 | 27/09/2020 | 03/10/2020 |
2020-S41 | 4/10/2020 | 10/10/2020 |
2020-S42 | 10/11/2020 | 17/10/2020 |
2020-S43 | 18/10/2020 | 24/10/2020 |
2020-S44 | 25/10/2020 | 31/10/2020 |
2020-S45 | 01/11/2020 | 7/11/2020 |
Desde la semana 2019-W46 fecha de inicio a la fecha de finalización 2020-W45, es 363 días, y 51.86 semanas.
Creo que he encontrado la razón por la que no está calculando las semanas correctamente.
Aunque la fórmula WEEKNUM parece utilizar la numeración de la semana ISO, no implementa correctamente la semana que se superpone dos años.
Si nos fijamos en la semana 2019-W53, usted notará que sólo tiene 3 días y la semana 2020-W01 4 días.
Normalmente, la semana 2019-W53 habría sido de hecho la semana 2020-W01 ya que tiene un jueves, según ISO 8601.
Pero desafortunadamente, Power BI no tiene una fórmula ISOWEEKNUM y su WEEKNUM no es el mismo que el de Excel.
Excel realmente tiene una regla de 1a semana del año en su fórmula WEEKNUM. Que en 2019 y 2020 da los mismos resultados que ISOWEEKNUM. Pero una vez cada 4 años, no está en línea con ISOWEEKNUM.
Power BI debe tener la fórmula ISOWEEKNUM para que podamos aplicar los números de semana ISO adecuados a nuestras tablas de fechas.
Mientras tanto, voy a volver a crear la fórmula ISOWEEKNUM en Power BI para obtener 52 semanas cuando pida las últimas 52 semanas.
Así que si alguien ya ha hecho esto, por favor hágamelo saber.
De lo contrario, probablemente publiqueré mi solución aquí.
Bombero1017
Encontré un post que hace referencia a esto: https: //blog.gbrueckl.at/2012/04/iso-8601-week-in-dax/
Parece que Excel ISOWEEKNUM era de hecho alguna versión de WEEKNUM con parámetros nodocumentados.
Ahora, ¿está bien usar puertas traseras como esta? Nunca me gustó.
Por favor, Microsoft, haga un ISOWEEKNUM para hacerlo oficial o en el documento de la constante ’21’ utilizado para obtener números de semana ISO.
AnnaSundboel
Hola
Tengo el mismo problema.
Por sus publicaciones entiendo que no se ha resuelto, ¿verdad?
Br
Anna
Bombero1017
En respuesta a AnnaSundboel
Hola AnnaSundboel,
Hay una solución alternativa indocumentada usando la constante 21 para la función WEEKNUM:
YEAR([Date])&"-W"&WEEKNUM([Date], 21)
Lo he probado y funcionó igual que ISOWEEKNUM en Excel.
Bombero1017
Encontré un post que hace referencia a esto: https: //blog.gbrueckl.at/2012/04/iso-8601-week-in-dax/
Parece que Excel ISOWEEKNUM era de hecho alguna versión de WEEKNUM con parámetros nodocumentados.
Ahora, ¿está bien usar puertas traseras como esta? Nunca me gustó.
Por favor, Microsoft, haga un ISOWEEKNUM para hacerlo oficial o en el documento de la constante ’21’ utilizado para obtener números de semana ISO.