Forum Discussion
Doble medida topn devolver texto
Buenos días
Estoy creando un informe que se centraría en las 10 cuentas principales en el período seleccionado, en función de la cantidad vendida de un producto specifc.
En la tabla Ventas hay 5 tipos de producto diferentes y cada uno de estos tipos tiene varios ProductName.
ejemplo:
| ProductType | Nombre del producto |
Gpu | RTX 3080 |
| Gpu | RTX 3070 |
| Gpu | RTX 3060 |
| CPU | Ryzen 7 3700x |
| CPU | Ryzen 9 3900x |
| CPU | Ryzen 5 2600x |
En el informe que estoy creando quiero mostrar las 10 cuentas principales por GPU vendidas. La medida parece:
m_GPU_Qty = Calculate(SUM('Sales(Product Level)'',[Quantity]), 'Sales(Product Level)'[ProductType]="GPU").
Quiero crear un cuadro de tarjeta que muestre el top 1 ProductName, entre las 10 cuentas principales filtradas por cantidad de GPU vendida.
Desafortunadamente descubrí que no es posible incluir dos filtros Top(N) en la vista.
Gracias por su atención,
Alessio B.
Allí @Alex-PBIComm ,
Hasta ahora, he completado su primera solicitud, y he encontrado algunas dificultades con su segunda solicitud. Por favor, espere pacientemente hasta que vuelva la próxima semana durante el horario laboral. Seguiré estudiando.
La medida es
top 5 Accounts per GPU sold = VAR _RANK = RANKX ( ALL ( 'Sales(Product Level)' ), CALCULATE ( SUM ( 'Sales(Product Level)'[Quantity] ), FILTER ( ALLEXCEPT ( 'Sales(Product Level)', 'Sales(Product Level)'[AccountID] ), [ProductType] = "GPU" ) ), , DESC, DENSE ) RETURN IF ( _RANK <= 5, _RANK )Dado que solo hay 7 datos de cuenta en mis datos de ejemplo, devolví los cinco principales datos de cuenta.
Me disculpo de nuevo por no resolver su problema a tiempo.
Saludos
Stephen Tao
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Allí @Alex-PBIComm ,
Después de mi prueba, crear una medida para obtener el nombre del producto top 1 no funciona.
Finalmente lo logré creando dos tablas. Dado que está escrito en dax, si los datos se actualizan, el resultado también se actualizará.
TOP5ACCOUNT ID = FILTER ( SUMMARIZE ( FILTER ( 'Sales(Product Level)', [ProductType] = "GPU" ), [ProductName], [Quantity], "top5", RANKX ( FILTER ( ALL ( 'Sales(Product Level)' ), [ProductType] = "GPU" ), CALCULATE ( SUM ( 'Sales(Product Level)'[Quantity] ), FILTER ( ALLEXCEPT ( 'Sales(Product Level)', 'Sales(Product Level)'[AccountID] ), [ProductType] = "GPU" ) ), , DESC, DENSE ) ), [top5] <= 5 )TOP 1 ProductName = FILTER ( SUMMARIZE ( 'TOP5ACCOUNT ID', [ProductName], [Quantity], "top1", RANKX ( ALL ( 'TOP5ACCOUNT ID' ), CALCULATE ( SUM ( 'TOP5ACCOUNT ID'[Quantity] ), ALLEXCEPT ( 'TOP5ACCOUNT ID', 'TOP5ACCOUNT ID'[ProductName] ) ), , DESC, DENSE ) ), [top1] = 1 )Saludos
Stephen Tao
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
6 Replies
- Syndicate_Admin
Administrator
Hola, @Alex-PBIComm
Por favor, pruebe la siguiente medida o similar a la siguiente medida.
Top 1 Nombre del producto en el visual de la tarjeta =
MAXX (
TOPN (
1,
«Ventas(nivel de producto)»,
CALCULAR (
SUM ( «Sales(Product Level)'[Quantity] ),
'Sales(Product Level)'[ProductType] = "GPU"
), DESC
),
'Sales(Product Level)'[ProductName]
)Hola, mi nombre es Jihwan Kim.
Si este post ayuda, considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.
- Syndicate_Admin
Administrator
Hola Jihwan,
gracias por su respuesta! Esto se ve bien, pero no está considerando que lo necesito sólo entre las 10 cuentas principales.
Editar: Lo he probado y en realidad devuelve algo inesperado, y realmente no puedo averiguar la razón del resultado.- Syndicate_Admin
Administrator
Hola, @Alex-PBIComm
Gracias por sus comentarios.
Comparta un conjunto de datos y muestre también el resultado esperado.
- Syndicate_Admin
Administrator
hola
Comparta un conjunto de datos y muestre también el resultado esperado.
- Syndicate_Admin
Administrator
Allí @Alex-PBIComm ,
Hasta ahora, he completado su primera solicitud, y he encontrado algunas dificultades con su segunda solicitud. Por favor, espere pacientemente hasta que vuelva la próxima semana durante el horario laboral. Seguiré estudiando.
La medida es
top 5 Accounts per GPU sold = VAR _RANK = RANKX ( ALL ( 'Sales(Product Level)' ), CALCULATE ( SUM ( 'Sales(Product Level)'[Quantity] ), FILTER ( ALLEXCEPT ( 'Sales(Product Level)', 'Sales(Product Level)'[AccountID] ), [ProductType] = "GPU" ) ), , DESC, DENSE ) RETURN IF ( _RANK <= 5, _RANK )Dado que solo hay 7 datos de cuenta en mis datos de ejemplo, devolví los cinco principales datos de cuenta.
Me disculpo de nuevo por no resolver su problema a tiempo.
Saludos
Stephen Tao
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
- Syndicate_Admin
Administrator
Allí @Alex-PBIComm ,
Después de mi prueba, crear una medida para obtener el nombre del producto top 1 no funciona.
Finalmente lo logré creando dos tablas. Dado que está escrito en dax, si los datos se actualizan, el resultado también se actualizará.
TOP5ACCOUNT ID = FILTER ( SUMMARIZE ( FILTER ( 'Sales(Product Level)', [ProductType] = "GPU" ), [ProductName], [Quantity], "top5", RANKX ( FILTER ( ALL ( 'Sales(Product Level)' ), [ProductType] = "GPU" ), CALCULATE ( SUM ( 'Sales(Product Level)'[Quantity] ), FILTER ( ALLEXCEPT ( 'Sales(Product Level)', 'Sales(Product Level)'[AccountID] ), [ProductType] = "GPU" ) ), , DESC, DENSE ) ), [top5] <= 5 )TOP 1 ProductName = FILTER ( SUMMARIZE ( 'TOP5ACCOUNT ID', [ProductName], [Quantity], "top1", RANKX ( ALL ( 'TOP5ACCOUNT ID' ), CALCULATE ( SUM ( 'TOP5ACCOUNT ID'[Quantity] ), ALLEXCEPT ( 'TOP5ACCOUNT ID', 'TOP5ACCOUNT ID'[ProductName] ) ), , DESC, DENSE ) ), [top1] = 1 )Saludos
Stephen Tao
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.