67nmark
Hola,
Tengo un conjunto de datos con una columna llamada CityID y una medida llamada% de las ventas totales MEDIDA. El visual se ve así:
Estoy tratando de crear dos medidas (y sin éxito) que muestren la ciudad más vendida (1) y el porcentaje más alto (29%).
¿Muy agradecido con cualquiera que pueda ayudar con esto?
Salud,
Marcos
OwenAuger
Hola, Mark,
Puedes usar medidas como esta:
Top Selling City = FIRSTNONBLANK ( TOPN ( 1, VALUES ( YourTable[CityID] ), [% of total sales MEASURE] ), 1 )
Top Percentage = MAXX ( VALUES ( YourTable[CityID] ), [% of total sales MEASURE] )
(consulte este artículo para conocer la primera medida)
Las medidas anteriores están sujetas a cualquier filtro en CityID. Puede reemplazar VALUES con ALL o ALLSELECTED para obtener un resultado sensato dentro de una imagen que incluya la dimensión CityID.
Saludos,
Owen
OwenAuger
Hola, Mark,
Puedes usar medidas como esta:
Top Selling City = FIRSTNONBLANK ( TOPN ( 1, VALUES ( YourTable[CityID] ), [% of total sales MEASURE] ), 1 )
Top Percentage = MAXX ( VALUES ( YourTable[CityID] ), [% of total sales MEASURE] )
(consulte este artículo para conocer la primera medida)
Las medidas anteriores están sujetas a cualquier filtro en CityID. Puede reemplazar VALUES con ALL o ALLSELECTED para obtener un resultado sensato dentro de una imagen que incluya la dimensión CityID.
Saludos,
Owen
67nmark
En respuesta a OwenAuger
Oye Owen,
Muchas gracias, eso es exactamente lo que necesitaba.
Salud,
Marcos
Matty
En respuesta a OwenAuger
Hola Owen,
Espero que estés bien.
Un par de preguntas sobre la solución ofrecida:
- ¿Por qué ha utilizado FIRSTNONBLANK en la primera medida? ¿Qué explica esto?
- ¿Qué sucede si dos ciudades comparten exactamente el mismo porcentaje? ¿Se mostrarán ambos? ¿Y si solo quisiéramos mostrar la primera ciudad, ordenada de forma ascendente según CityID?
Disculpas por entrometerte en el hilo: estoy tratando de aumentar mi conocimiento de DAX, de ahí las preguntas …
Salud,
Matty
OwenAuger
En respuesta a Matty
Hola Matty,
Estoy bien gracias, espero que estés bien 🙂
- FIRSTNONBLANK se utiliza como desempate (técnica tomada de aquí). Si hubiera un empate para el CityID superior, la función TOPN en sí misma los devolvería todos (como una tabla de una sola columna). Sin FIRSTNONBLANK, esto causaría un error (ya que una medida no puede devolver una tabla aparte del caso especial de 1 fila / 1 columna). Por lo tanto, FIRSTNONBLANK se usa para devolver solo el primer valor (alfabético o numérico).
En realidad, dado que MINX / MAXX se puede usar con Strings ahora, otra forma de escribir la medida del desempate es:Top Selling City = MINX ( TOPN ( 1, VALUES ( YourTable[CityID] ), [% of total sales MEASURE] ), YourTable[CityID] )
- Con la medida tal como la escribí, solo se mostraría el primer CityID numéricamente (ascendente), por lo que ya está haciendo lo que sugirió.
Una forma de devolver múltiples valores CityID vinculados sería usar CONCATENATEX:Top Selling City = CONCATENATEX ( TOPN ( 1, VALUES ( YourTable[CityID] ), [% of total sales MEASURE] ), YourTable[CityID], ", ", YourTable[CityID] )
Salud
Owen
Matty
En respuesta a OwenAuger
Gracias Owen. Explicación muy clara.
Salud,
Matty