wolvecz
¡Hola a todos!
Realmente me gustaría su ayuda con esto. Estoy tratando de crear un gráfico de barras que muestre DISTINCTCOUNT de usuarios sobre una categoría y luego coloreado por un número de visita. Los datos se basan en el tiempo, por lo que cada usuario puede tener varias filas con diferentes números de visitas. Mis datos se ven así:
ID de usuario categoría Número de visita Fecha
1 1 1 1/1/2020
1 1 2 1/2/2020
2 5 1 1/2/2020
3 2 1 1/3/2020
1 1 3 1/3/2020
2 5 2 1/4/2020
Cuando utilizo un gráfico de barras apiladas cuyo valor es el conteo distinto de visitantes y configuro la leyenda (color) en Número de visita, parece que obtengo un conteo doble, donde veo que los usuarios aparecen varias veces (uno para cada número de visita, como se muestra arriba). Me gustaría que esto solo muestre el valor del número de visita más reciente, así:
ID de usuario categoría Número de visita Fecha
3 2 1 1/3/2020
1 1 3 1/3/2020
2 5 2 1/4/2020
De esta forma, el eje Y no cuenta dos veces a los usuarios y muestra el número correcto.
Sin embargo, también quiero usar un control deslizante en la página que limitará dinámicamente los datos en función de los valores de fecha. Esto significa que el número de visitas más alto puede cambiar, por lo que no puedo simplemente crear una nueva columna con una marca para el valor máximo y filtrar eso. Por lo tanto, el resultado deseado se vería como el siguiente si un control deslizante limita los datos a principios del 3/1/2020.
ID de usuario categoría Número de visita Fecha
1 1 2 1/2/2020
2 5 1 1/2/2020
3 2 1 1/3/2020
Cuando hago esto actualmente, obtengo el primer ejemplo donde los datos cuentan dos veces como resultado de la leyenda. ¿Hay alguna manera de crear un gráfico de barras que solo muestre el valor de visita más alto según la fecha, para evitar que el gráfico de barras apiladas cuente a los usuarios dos veces?
v-xuding-msft
Hola @WolVecz,
Creo una muestra. Funciona bien en Table visual. No tengo claro cómo se configuran las columnas en gráfico de barras apiladas. Pruebe la fórmula para comprobar si es lo que desea.
Measure =
var slider = MAX('Date'[Date])
var maxDate = MAXX(FILTER(ALL('Table'),'Table'[userId] = MAX('Table'[userId])&& 'Table'[Date] <= slider),'Table'[Date])
return
CALCULATE(MAX('Table'[userId]),FILTER('Table','Table'[Date] = maxDate && 'Table'[Date] <= slider))
Para obtener más detalles, consulte el archivo adjunto.
amichandak
@WolVecz, mira si esto puede ayudar
https://docs.microsoft.com/en-us/dax/lastnonblankvalue-function-dax
lastnonblankvalue(Tabla[date],Máx.(Tabla[Visit number]))
o
lastnonblankvalue(Tabla[date],Suma(Tabla[Visit number]))
wolvecz
En respuesta a amichandak
Parece que funcionaría, pero no se puede arrastrar al campo de la leyenda. Supongo que requiere alguna función para realizar el cálculo por ID de usuario primero. ¿Cómo ejecutaría su función por ID de usuario?
v-xuding-msft
En respuesta a wolvecz
Hola @WolVecz,
¿Podrías decirme si tu problema se ha solucionado? si es asi por favor marca la respuesta útil como solución si sientes que tiene sentido. Bienvenido a compartir su propia solución. Más personas se beneficiarán del hilo.
wolvecz
En respuesta a v-xuding-msft
Su solución no aborda el problema y continúa contando dos veces. No se ha solucionado.