Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Estoy teniendo un problema de clasificación complicado.
Aquí hay algunas muestras de tablas que tengo:
Ordenación de selección de inteligencia de tiempo:
| de selección ordenar
------------------
Semana | 0
Mes | 1
Cuarto de | 2
Año | 3
Selección de inteligencia de tiempo:
| de selección valor
---------------------
Semana | 01/04/2020
Semana | 01/11/2020
.....
Semana | 05/16/2020
Mes | 2020 Enero
Mes | 2020 febrero
....
Mes | 2020 mayo
Cuarto de | 1T 2020
....
Cuarto de | 2T 2020
Año | 2020
Mes | Abr 2020
(Mi tabla real se remonta a 2016).
Las dos tablas anteriores están relacionadas por las columnas 'Selección'.
Mi tabla de fechas tiene columnas correspondientes a las columnas "Selección", por lo que "Semana", "Mes", "Trimestre" y "Año" con los valores equivalentes a los de la columna "Valor" de la tabla anterior. Tengo esa misma columna "Valor" conectada a las columnas "Semana", "Mes", "Trimestre" y "Año" en mi tabla de fechas con solo una de ellas activa, obviamente. Debo mencionar que estas columnas en mi tabla de fechas son de tipo texto y también lo es la columna 'Valor' en la tabla 'Selección de inteligencia de tiempo' anterior.
Mis tablas de datos reales tienen una columna 'Week Ending Date' que está relacionada con una columna 'Week Ending' en mi tabla de fechas que es de un tipo de fecha real.
Mi intención lograda es tener una segmentación con los valores de "Semana", "Mes", "Trimestre" y "Año" en ella. Cuando el usuario selecciona uno de esos valores, todos mis objetos visuales cambian dinámicamente para agregarse por el período de fecha correspondiente. Sé que puedo profundizar en mis objetos visuales mediante una jerarquía de fechas. Sin embargo, mi cliente no quiere eso. Querían una rebanadora de selección de período. Así que, por favor, no responda con: "Solo use una jerarquía de fechas en profundidad en sus imágenes".
Lo tengo funcionando correctamente. Por lo tanto, cuando el usuario elige "Mes" en la segmentación de selección de período, la tabla de selección de inteligencia de tiempo se filtra por ['Selección'] = "Mes" y solo los valores del mes (2020 enero, 2020 febrero, 2020 marzo, 2020 abril, etc.) aparecen en mis imágenes como los encabezados de eje o columna (para las imágenes particulares que estoy usando). Los datos se agregan correctamente por mes, en este caso y también por el período apropiado en los otros casos. Mi problema es que las fechas no están ordenadas.
Las fechas que se muestran en mis imágenes son las de la columna 'Selección de inteligencia de tiempo' [Valor]. Esta es una columna de texto con varios formatos como se muestra arriba. Agregué una columna de ordenación a esta tabla, pero cuando intento seleccionarla como la columna 'Ordenar por' para la columna 'Valor', recibo un error que dice "No se puede ordenar por una columna que ya está ordenada, directa o indirectamente" y mis valores de fecha obviamente se muestran en el orden incorrecto.
¿Cómo puedo ordenarlos correctamente?
Gracias de antemano.
Solved! Go to Solution.
Puesto que nadie presentó una solución mejor, he encontrado una.
Para reiterar el problema, quiero ordenar una columna que tiene varias agrupaciones, por lo que quiero un criterio de ordenación para cada agrupación. La única manera que he encontrado para que esto funcione correctamente es incrustar espacios de ancho cero en mis datos. Los espacios vienen alfabéticamente antes de la letra 'a'. Dos espacios vienen alfabéticamente antes de un espacio, y así sucesivamente y así sucesivamente. Entonces, para cada agrupación, calculé cuántos valores había en el grupo y puse esa cantidad de espacios delante del elemento que quiero primero, un espacio menos delante del siguiente elemento, etc. Y lo hice para cada agrupación. Power BI ordena automáticamente los valores alfabéticamente, por lo que esto solucionó mi problema.
Para agregar los espacios de ancho cero delante de mis elementos, utilicé la función UNICHAR. El código Unichar 8203 es un espacio de ancho cero. Para obtener el número de espacios que necesitaba delante de mis valores, utilicé la función REPT.
REPT(UNICHAR(8203), NUM_OF_SPACES) & [MiValorColumn]
Concatenado esto delante de mis valores para cada grupo de valores.
Ahora tengo una segmentación de datos que cambia dinámicamente el eje x durante un año, trimestre, mes y semana y medidas que actúan fuera de esta segmentación para calcular cada valor de inteligencia de tiempo necesario.
Esto tomó un montón de búsqueda para averiguarlo.
Puesto que nadie presentó una solución mejor, he encontrado una.
Para reiterar el problema, quiero ordenar una columna que tiene varias agrupaciones, por lo que quiero un criterio de ordenación para cada agrupación. La única manera que he encontrado para que esto funcione correctamente es incrustar espacios de ancho cero en mis datos. Los espacios vienen alfabéticamente antes de la letra 'a'. Dos espacios vienen alfabéticamente antes de un espacio, y así sucesivamente y así sucesivamente. Entonces, para cada agrupación, calculé cuántos valores había en el grupo y puse esa cantidad de espacios delante del elemento que quiero primero, un espacio menos delante del siguiente elemento, etc. Y lo hice para cada agrupación. Power BI ordena automáticamente los valores alfabéticamente, por lo que esto solucionó mi problema.
Para agregar los espacios de ancho cero delante de mis elementos, utilicé la función UNICHAR. El código Unichar 8203 es un espacio de ancho cero. Para obtener el número de espacios que necesitaba delante de mis valores, utilicé la función REPT.
REPT(UNICHAR(8203), NUM_OF_SPACES) & [MiValorColumn]
Concatenado esto delante de mis valores para cada grupo de valores.
Ahora tengo una segmentación de datos que cambia dinámicamente el eje x durante un año, trimestre, mes y semana y medidas que actúan fuera de esta segmentación para calcular cada valor de inteligencia de tiempo necesario.
Esto tomó un montón de búsqueda para averiguarlo.
Puesto que nadie presentó una solución mejor, he encontrado una.
Para reiterar el problema, quiero ordenar una columna que tiene varias agrupaciones, por lo que quiero un criterio de ordenación para cada agrupación. La única manera que he encontrado para que esto funcione correctamente es incrustar espacios de ancho cero en mis datos. Los espacios vienen alfabéticamente antes de la letra 'a'. Dos espacios vienen alfabéticamente antes de un espacio, y así sucesivamente y así sucesivamente. Entonces, para cada agrupación, calculé cuántos valores había en el grupo y puse esa cantidad de espacios delante del elemento que quiero primero, un espacio menos delante del siguiente elemento, etc. Y lo hice para cada agrupación. Power BI ordena automáticamente los valores alfabéticamente, por lo que esto solucionó mi problema.
Para agregar los espacios de ancho cero delante de mis elementos, utilicé la función UNICHAR. El código Unichar 8203 es un espacio de ancho cero. Para obtener el número de espacios que necesitaba delante de mis valores, utilicé la función REPT.
REPT(UNICHAR(8203), NUM_OF_SPACES) & [MiValorColumn]
Concatenado esto delante de mis valores para cada grupo de valores.
Ahora tengo una segmentación de datos que cambia dinámicamente el eje x durante un año, trimestre, mes y semana y medidas que actúan fuera de esta segmentación para calcular cada valor de inteligencia de tiempo necesario.
Esto tomó un montón de búsqueda para averiguarlo.
@SignorSoprano , No me queda muy claro
Si piensa cambiar de eje mediante la segmentación de datos, la opción es Marcar
https://radacad.com/bookmarks-and-buttons-making-power-bi-charts-even-more-interactive
Si desea cambiar la medida, entonces
Si su problema con el criterio de ordenación tiene columna de ordenación
https://docs.microsoft.com/en-us/power-bi/desktop-sort-by-column
@SignorSoprano - Esto parece un tema muy matizado y creo que tendrá que ser recreado con el fin de ser resuelto. ¿De alguna manera puede acelerar ese proceso compartiendo el PBIX o algunos datos de muestra adicionales para recrear?
Puesto que nadie presentó una solución mejor, he encontrado una.
Para reiterar el problema, quiero ordenar una columna que tiene varias agrupaciones, por lo que quiero un criterio de ordenación para cada agrupación. La única manera que he encontrado para que esto funcione correctamente es incrustar espacios de ancho cero en mis datos. Los espacios vienen alfabéticamente antes de la letra 'a'. Dos espacios vienen alfabéticamente antes de un espacio, y así sucesivamente y así sucesivamente. Entonces, para cada agrupación, calculé cuántos valores había en el grupo y puse esa cantidad de espacios delante del elemento que quiero primero, un espacio menos delante del siguiente elemento, etc. Y lo hice para cada agrupación. Power BI ordena automáticamente los valores alfabéticamente, por lo que esto solucionó mi problema.
Para agregar los espacios de ancho cero delante de mis elementos, utilicé la función UNICHAR. El código Unichar 8203 es un espacio de ancho cero. Para obtener el número de espacios que necesitaba delante de mis valores, utilicé la función REPT.
REPT(UNICHAR(8203), NUM_OF_SPACES) & [MiValorColumn]
Concatenado esto delante de mis valores para cada grupo de valores.
Ahora tengo una segmentación de datos que cambia dinámicamente el eje x durante un año, trimestre, mes y semana y medidas que actúan fuera de esta segmentación para calcular cada valor de inteligencia de tiempo necesario.
Esto tomó un montón de búsqueda para averiguarlo.
@SignorSoprano , No me queda muy claro
Si piensa cambiar de eje mediante la segmentación de datos, la opción es Marcar
https://radacad.com/bookmarks-and-buttons-making-power-bi-charts-even-more-interactive
Si desea cambiar la medida, entonces
Si su problema con el criterio de ordenación tiene columna de ordenación
https://docs.microsoft.com/en-us/power-bi/desktop-sort-by-column
@amitchandak No quiero usar marcadores. Quiero usar esta segmentación de datos para cambiar dinámicamente el eje x de mi objeto visual. Y tengo esa parte funcionando, correctamente. Solo quiero ordenar los valores del eje x correctamente. Esto es lo que no puedo entender. He hecho una columna de ordenación y no funciona. Las columnas relacionadas también están ordenadas, por lo que pensé que esta columna también se ordenaría automáticamente, ya que existe una relación. Pero no es así.
@amitchandak No quiero usar marcadores. Quiero usar esta segmentación de datos para cambiar dinámicamente el eje x de mi objeto visual. Y tengo esa parte funcionando, correctamente. Solo quiero ordenar los valores del eje x correctamente. Esto es lo que no puedo entender. He hecho una columna de ordenación y no funciona. Las columnas relacionadas también están ordenadas, por lo que pensé que esta columna también se ordenaría automáticamente, ya que existe una relación. Pero no es así.
@SignorSoprano - Esto parece un tema muy matizado y creo que tendrá que ser recreado con el fin de ser resuelto. ¿De alguna manera puede acelerar ese proceso compartiendo el PBIX o algunos datos de muestra adicionales para recrear?
No puedo compartir el archivo pbix porque tiene información confidencial. Pero aquí hay datos más completos:
'Ordenación de selección de tiempo'
ordenar | selección |
0 | semana |
1 | mes |
2 | cuarto |
3 | año |
'Selección de tiempo'
selección | valor |
semana | 01/04/2020 |
semana | 01/11/2020 |
semana | 01/18/2020 |
semana | 01/25/2020 |
semana | 02/01/2020 |
semana | 02/08/2020 |
semana | 02/15/2020 |
semana | 02/22/2020 |
semana | 02/29/2020 |
semana | 03/07/2020 |
semana | 03/14/2020 |
semana | 03/21/2020 |
semana | 03/28/2020 |
semana | 04/04/2020 |
semana | 04/11/2020 |
semana | 04/18/2020 |
semana | 04/25/2020 |
semana | 05/02/2020 |
semana | 05/09/2020 |
semana | 05/16/2020 |
semana | 05/23/2020 |
mes | 2020 Enero |
mes | 2020 febrero |
mes | Marzo 2020 |
mes | Abr 2020 |
mes | 2020 mayo |
cuarto | 1T 2020 |
cuarto | 2T 2020 |
año | 2020 |
Ambas columnas son de tipo Texto
'Fechas'
fecha | Fin de semana | semana | mes | cuarto | año |
01/01/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 1T 2020 | 2020 |
01/02/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 1T 2020 | 2020 |
01/03/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 2020.Q1 | 2020 |
01/04/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 1T 2020 | 2020 |
01/05/2020 | 01/11/2020 | 01/11/2020 | 2020 Enero | 1T 2020 | 2020 |
... | ... | ... | ... | ... | ... |
05/16/2020 | 05/16/2020 | 05/16/2020 | 2020 mayo | 2T 2020 | 2020 |
05/17/2020 | 05/23/2020 | 05/23/2020 | 2020 mayo | 2T 2020 | 2020 |
05/18/2020 | 05/23/2020 | 05/23/2020 | 2020 mayo | 2T 2020 | 2020 |
05/19/2020 | 05/23/2020 | 05/23/2020 | 2020 mayo | 2T 2020 | 2020 |
[Fin de semana] es de tipo Fecha. [Semana] es de tipo Texto, al igual que [Mes], [Trimestre] y [Año]
'Horas'
Número de proyecto | fase | tarea | Id. de recurso | Fin de semana | tipo | horas |
10123421 | 01 | 01 | 1112345 | 05/16/2020 | B | 23 |
10132144 | 03 | 01 | 1112345 | 05/16/2020 | B | 10 |
11111111 | 01 | 01 | 1112345 | 05/16/2020 | O | 7 |
... | ... | ... | ... | ... | ... | ... |
'Time Selection Sort'[Selección] está en el campo de valor de una rebanadora chiclet. La columna [Ordenar] hace que se muestre en la segmentación de datos de la siguiente manera:
| Semana | Mes | Cuarto de | Año |
'Time Selection Sort'[Selection] tiene una relación con 'Time Selection'[Selection]
'Selección de tiempo'[Valor] tiene una relación con 'Fechas'[Semana], 'Fechas'[Mes], 'Fechas'[Trimestre] y 'Fechas'[Año]. Solo la relación con 'Dates'[Week] está activa. Los restantes están inactivos.
'Horas'[Fin de semana] tiene una relación con 'Fechas'[Fin de semana].
Tengo medidas que miran la selección de tiempo actual y resumen las horas de la siguiente manera:
No puedo compartir el archivo pbix porque tiene información confidencial. Pero aquí hay datos más completos:
'Ordenación de selección de tiempo'
ordenar | selección |
0 | semana |
1 | mes |
2 | cuarto |
3 | año |
'Selección de tiempo'
selección | valor |
semana | 01/04/2020 |
semana | 01/11/2020 |
semana | 01/18/2020 |
semana | 01/25/2020 |
semana | 02/01/2020 |
semana | 02/08/2020 |
semana | 02/15/2020 |
semana | 02/22/2020 |
semana | 02/29/2020 |
semana | 03/07/2020 |
semana | 03/14/2020 |
semana | 03/21/2020 |
semana | 03/28/2020 |
semana | 04/04/2020 |
semana | 04/11/2020 |
semana | 04/18/2020 |
semana | 04/25/2020 |
semana | 05/02/2020 |
semana | 05/09/2020 |
semana | 05/16/2020 |
semana | 05/23/2020 |
mes | 2020 Enero |
mes | 2020 febrero |
mes | Marzo 2020 |
mes | Abr 2020 |
mes | 2020 mayo |
cuarto | 1T 2020 |
cuarto | 2T 2020 |
año | 2020 |
Ambas columnas son de tipo Texto
'Fechas'
fecha | Fin de semana | semana | mes | cuarto | año |
01/01/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 1T 2020 | 2020 |
01/02/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 1T 2020 | 2020 |
01/03/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 2020.Q1 | 2020 |
01/04/2020 | 01/04/2020 | 01/04/2020 | 2020 Enero | 1T 2020 | 2020 |
01/05/2020 | 01/11/2020 | 01/11/2020 | 2020 Enero | 1T 2020 | 2020 |
... | ... | ... | ... | ... | ... |
05/16/2020 | 05/16/2020 | 05/16/2020 | 2020 mayo | 2T 2020 | 2020 |
05/17/2020 | 05/23/2020 | 05/23/2020 | 2020 mayo | 2T 2020 | 2020 |
05/18/2020 | 05/23/2020 | 05/23/2020 | 2020 mayo | 2T 2020 | 2020 |
05/19/2020 | 05/23/2020 | 05/23/2020 | 2020 mayo | 2T 2020 | 2020 |
[Fin de semana] es de tipo Fecha. [Semana] es de tipo Texto, al igual que [Mes], [Trimestre] y [Año]
'Horas'
Número de proyecto | fase | tarea | Id. de recurso | Fin de semana | tipo | horas |
10123421 | 01 | 01 | 1112345 | 05/16/2020 | B | 23 |
10132144 | 03 | 01 | 1112345 | 05/16/2020 | B | 10 |
11111111 | 01 | 01 | 1112345 | 05/16/2020 | O | 7 |
... | ... | ... | ... | ... | ... | ... |
'Time Selection Sort'[Selección] está en el campo de valor de una rebanadora chiclet. La columna [Ordenar] hace que se muestre en la segmentación de datos de la siguiente manera:
| Semana | Mes | Cuarto de | Año |
'Time Selection Sort'[Selection] tiene una relación con 'Time Selection'[Selection]
'Selección de tiempo'[Valor] tiene una relación con 'Fechas'[Semana], 'Fechas'[Mes], 'Fechas'[Trimestre] y 'Fechas'[Año]. Solo la relación con 'Dates'[Week] está activa. Los restantes están inactivos.
'Horas'[Fin de semana] tiene una relación con 'Fechas'[Fin de semana].
Tengo medidas que miran la selección de tiempo actual y resumen las horas de la siguiente manera: