The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Necesito ayuda para resumir los datos de una categoría por usuario y contar los resultados filtrados por valor máximo para cada usuario
Para ex: En la imagen de abajo, usuario - "SL-08" tiene una entrada para la categoría - H y 2 entradas para la categoría - F. Por lo tanto, en un período de dar, como una semana de 5/24, este usuario debe contarse para la categoría - F (como se muestra en los datos resumidos). Si hay un empate, la categoría F tiene prioridad.
Necesito ayuda con dax measure, hay otras tablas y filtros relacionados que necesito aplicar utilizándolos a los datos.
Id | Usuario | Identificador de categoría | Wk | Fecha | Nombre de la categoría |
165 | SL-08 | 1 | 5/24/2020 | 5/26/2020 0:00 | H |
165 | SL-08 | 2 | 5/24/2020 | 5/28/2020 0:00 | F |
165 | SL-08 | 2 | 5/24/2020 | 5/29/2020 0:00 | F |
165 | SL-09 | 2 | 5/24/2020 | 5/27/2020 0:00 | F |
164 | SL-AE01 | 1 | 5/24/2020 | 5/26/2020 0:00 | H |
164 | SL-AE01 | 2 | 5/24/2020 | 5/27/2020 0:00 | F |
164 | SL-AE02 | 1 | 5/24/2020 | 5/26/2020 0:00 | H |
164 | SL-AE06 | 1 | 5/24/2020 | 5/26/2020 0:00 | H |
164 | SL-AE06 | 1 | 5/24/2020 | 5/27/2020 0:00 | H |
164 | SL-AE06 | 2 | 5/24/2020 | 5/26/2020 0:00 | F |
165 | SL-AE08 | 2 | 5/24/2020 | 5/27/2020 0:00 | F |
165 | SL-AE08 | 2 | 5/24/2020 | 5/26/2020 0:00 | F |
165 | SL-AE08 | 2 | 5/24/2020 | 5/27/2020 0:00 | F |
¡¡Gracias!!
Hola @vdr ,
Según su descripción, F tiene una prioridad, por lo que primero puede crear una columna calculada como esta:
rank =
VAR count_catefory =
CALCULATE (
COUNT ( 'Table (2)'[Category Id] ),
ALLEXCEPT (
'Table (2)',
'Table (2)'[User],
'Table (2)'[Wk],
'Table (2)'[Category Name]
)
)
VAR precedence =
IF ( 'Table (2)'[Category Name] = "F", count_catefory + 0.5, count_catefory )
RETURN
precedence
A continuación, cree una columna calculada para obtener el nombre de categoría de cada usuario.
category_test =
VAR max_ =
CALCULATE (
MAX ( 'Table (2)'[rank] ),
ALLEXCEPT ( 'Table (2)', 'Table (2)'[User] )
)
RETURN
CALCULATE (
FIRSTNONBLANK ( 'Table (2)'[Category Name], 1 ),
FILTER ( 'Table (2)', 'Table (2)'[rank] = max_ )
)
El tercer gráfico no se puede lograr en power Bi por el momento
Saludos
Liang
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @V-lianl-msft. ¡Gracias! Gráfico de área que se muestra en el resultado final es lo que realmente necesito y me gustaría utilizar medidas para hacerlo dinámico porque necesita devolver datos para el período seleccionado mes / semana, etc, conjunto de datos real es más de 8M + filas
Además, he añadido las columnas "semana" y "Nombre de categoría" para facilitar la consulta. Ambos tienen mesas diferentes
@vdr , Probar como
lastnonblankvalue(Table[Date], max(Table[Categort]))
Calendario de la semana - https://community.powerbi.com/t5/Community-Blog/Any-Weekday-Week-Decoding-Date-and-Calendar-2-5-Powe...
WOW -https://medium.com/@amitchandak.1978/power-bi-wtd-questions-time-intelligence-4-5-98c30fab69d3
https://community.powerbi.com/t5/Community-Blog/Week-Is-Not-So-Weak-WTD-Last-WTD-and-This-Week-vs-La...
@vdr - Este parece un caso de uso para Buscar Min/Max - https://community.powerbi.com/t5/Quick-Measures-Gallery/Lookup-Min-Max/m-p/985814#M434
Aunque sea más sencillo en su caso, obtenga el MAX de Date, utilícelo para buscar el nombre de categoría correspondiente a esa fecha.
@Greg_Deckler . Gracias, he probado un enfoque similar antes y no parece obtener la salida que necesito, especialmente para los usuarios que tienen varias categorías en el período de selección. selecciona ambas categorías para el usuario en este caso.
VAR __summarytable =
// ADDCOLUMNS (
SUMMARIZE ( Test2
, Test2[User]
, Test2[Category Id]
, "MaxxCount",CALCULATE ( COUNTROWS(Test2))
, "TWCount",CALCULATE ( COUNTROWS(Test2), FILTER(Test2,Test2[Category Id] = 1))
, "AFCount",CALCULATE ( COUNTROWS(Test2), FILTER(Test2,Test2[Category Id] = 2))
, "VisitCount",CALCULATE ( COUNTROWS(Test2), FILTER(Test2,Test2[Category Id] = 4))
)
VAR __Max = MAXX(__summarytable,[MaxxCount])
RETURN
COUNTROWS(FILTER(__summarytable,[MaxxCount] = __Max || [AFCount] >= [TWCount]))
@vdr- ¿Puede registrar datos de ejemplo como texto y salida esperada? Mucho más fácil de solucionar si puedo volver a crear el problema localmente.
Greg, V-lianl-msft,
Disculpas, creé una publicación duplicada.
@Greg_Deckler - por favor eche un vistazo a este hilo. He intentado explicar el escenario y agregar datos de muestra, con el resultado esperado
https://community.powerbi.com/t5/Desktop/Compare-counts-with-in-group-rank-and-count-the-top-values/...