Forum Discussion
Consulta DAX
Hola, soy un poco nuevo en Power Query y me encantaría recibir ayuda para lograr los requisitos para un determinado panel.
Tengo una tabla de solicitudes donde tengo los atributos:
| RequestId | continente País | Ciudad
1 Europa España Madrid
2 Europa España Madrid
3 Europa Francia París
4 Europa Francia París
5 Europa España Valencia
6 América USA Madrid
Me gustaría tener un gráfico de anillo con solo los 2 'lugares' principales que han hecho solicitudes, donde 'lugares' son la concatenanción de Continent | País | Ciudad. Para este pequeño ejemplo, el gráfico de anillo tendría 2 (recuento de) solicitudes para Europa | España | Madrid, y 2 (cuenta de) solicitudes para Europa | Francia | París. DirectQuery realiza el modo de importación de datos.
Gracias.
3 Replies
- Syndicate_Admin
Administrator
Supongo que quieres esto en DAX ya que ese es el nombre del tema? Menciona Power Query, que es diferente a DAX.
Descargue este archivo PBIX con solución.
Para hacer lo que quieras, crea una columna en la tabla de datos que concatene el continente, el país y la ciudad
Place = [Continent] & " | " & [Country] & " | " & [City]A continuación, cree una nueva tabla con TOPN que enumere solo los 2 primeros
Top2 = TOPN( 2, SUMMARIZE( 'TableRaw', 'TableRaw'[Place], "Requests", COUNT('TableRaw'[Request ID]) ), [Requests] )A continuación, cree su objeto visual a partir de la nueva tabla
Saludos
Phil
- Syndicate_Admin
Administrator
Hola @PhilipTreacy
¡Gracias por el repply!
Sí, querría la solución en DAX. El problema es que el modo de importación está en DirectQuery (de hecho es una tabla híbrida) y no me permite crear columnas calculadas de esa manera. Así que no estoy seguro de cómo puedo lograr concatenar el "Lugar" sin columnas calculadas. ¿Alguna idea?- Syndicate_Admin
Administrator
Aquí hay una manera:
(Mi tabla se llama 'Ubicaciones')
Utilizando estas medidas:Count Locations = CALCULATE ( COUNTROWS ( Locations ), ALLEXCEPT ( Locations, Locations[Continent], Locations[Country], Locations[City] ) )RANK Locations = RANKX ( ALL ( Locations ), [Count Locations],, DESC, SKIP )Measure for chart = IF([RANK Locations] <=2, [Count Locations])o si prefieres tenerlo solo en una medida:
Top 2 = IF ( RANKX ( ALL ( Locations ), CALCULATE ( COUNTROWS ( Locations ), ALLEXCEPT ( Locations, Locations[Continent], Locations[Country], Locations[City] ) ), , DESC, SKIP ) <= 2, CALCULATE ( COUNTROWS ( Locations ), ALLEXCEPT ( Locations, Locations[Continent], Locations[Country], Locations[City] ) ) )