Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola a todos
Se me encomendó la tarea de crear un informe bastante complejo que mostrara a todos los usuarios de una lista determinada que participaron en cualquiera de nuestros videos ofrecidos.
Sin embargo, me dieron dos conjuntos de datos: uno que contiene todos los usuarios y otro que contiene títulos de video y solo usuarios que participaron en uno o más de ellos.
Lo que me gustaría hacer es crear un conjunto de datos con los usuarios como filas, los títulos de video como columnas y los valores sean 1 para la participación y 0 para nada. Idealmente, esto se actualizaría solo y quiero que sea un conjunto de datos, no visual. Ejemplos a continuación.
Conjunto de datos 1.
Nombre | Datos aleatorios |
Persona 1 | XXX |
Persona 2 | XXX |
Persona 3 | XXX |
Conjunto de datos 2. (Persona 3 desaparecida porque no participó)
Nombre | Título del vídeo | Registro |
Persona 1 | YYY | Sí |
Persona 2 | YY1 | Sí |
Resultado deseado del conjunto de datos
Nombre | Título del vídeo (AAAA) | Título del vídeo (YY1) | Título del vídeo (YY2) |
Persona 1 | 1 | 0 | 0 |
Persona 2 | 1 | 1 | 0 |
Persona 3 | 0 | 0 | 0 |
Cualquier ayuda es apreciada
¿Podría decirme si su problema ha sido resuelto? Si es así, por favor Acéptelo como la solución. Más personas se beneficiarán de ello. O si todavía está confundido al respecto, proporcióneme más detalles sobre su tabla y su problema o compártame con su archivo pbix después de eliminar datos confidenciales.
Consulte con:
Cómo proporcionar datos de ejemplo en el foro de Power BI
Cómo obtener respuestas rápidas a su pregunta
Saludos
Jianbo Li
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Aprobar con @ITManuel. Pero parece que crear relaciones entre tablas no es necesario, puedes probar un DAX similar:
Table =
SUMMARIZE (
'Dataset 1',
[Name],
"YYY",
IF (
CALCULATE (
COUNT ( 'Dataset 2'[Registration] ),
FILTER (
'Dataset 2',
[Name] = EARLIER ( 'Dataset 1'[Name] )
&& [Registration] = "Yes"
&& [Video title] = "YYY"
)
) >= 1,
1,
0
),
"YY1",
IF (
CALCULATE (
COUNT ( 'Dataset 2'[Registration] ),
FILTER (
'Dataset 2',
[Name] = EARLIER ( 'Dataset 1'[Name] )
&& [Registration] = "Yes"
&& [Video title] = "YY1"
)
) >= 1,
1,
0
)
)
Resultado final:
Saludos
Jianbo Li
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola
en primer lugar, sustituya el valor de registro yes por 1.
Luego elige un título de video y pídelo
A continuación, combine dos tablas en el nombre
Luego expándalo
El valor nulo de reemplazo en todas las columnas
A continuación, haga referencia a esa tabla
dejar
Fuente = #"Tabla",
ReplaceNulls = Table.TransformColumns(Source,{},(x) => Replacer.ReplaceValue(x,null,0))
en
ReplaceNulls
Espero que ayude
pruebe los siguientes pasos en PowerQuery.
primero. Dinamizar el icono de vídeo de columna en el conjunto de datos 2
2º. Combinar Dataset 1 con Dataset 2
Tercera. Expandir columnas de vídeo
Hola, esto parece funcionar un poco, pero no creo que sea bueno para mis necesidades, ya que mis conjuntos de datos consisten en demasiadas filas. La lista de usuarios únicos es de 20k + filas y la que tiene títulos de video y registros respectivos es aún más larga, ya que los usuarios pueden participar en uno o más videos. Por lo tanto, el conjunto de datos combinado tarda años en cargarse fuera de la consulta de energía y cualquier acción, como el filtrado, tarda demasiado.
¿Quizás sabes si hay alguna manera de ajustar este búfer?
Para lograr este resultado deseado, puede usar una fórmula de Power BI DAX para crear una nueva tabla calculada basada en los dos conjuntos de datos existentes. Este es un ejemplo de cómo puede crear esta nueva tabla calculada:
VideoTitles = DISTINCT(Dataset2[Título del vídeo])
A continuación, cree una relación entre Dataset 1 y la nueva tabla VideoTitles utilizando la columna "Nombre" como clave común.
Cree una nueva tabla calculada con la fórmula de DAX siguiente:
DesiredDataset = SUMMARIZE(Dataset1, Dataset1[Name], "Video title (YYY)", IF(COUNTIF(Dataset2, [Name]=Dataset1[Name]&& [Video title]="YYY")>0, 1, 0), "Video title (YY1)", IF(COUNTIF(Dataset2, [Name]=Dataset1[Name]&& [Video title]="YY1")>0, 1, 0), ... repetir para todos los títulos de vídeo)
Nota: Asegúrese de reemplazar "YYY" y "YY1" con los nombres reales de los títulos de video en sus conjuntos de datos.
Hola, gracias! Pero desafortunadamente, me quedé atascado en el segundo paso, cuando creo una lista distinta de títulos de video, obtengo solo esa columna y, por lo tanto, no puedo crear una relación entre el conjunto de datos 1 (nombres) y los títulos de video, ya que no hay nombres de usuarios. Tal vez simplemente no estoy entendiendo bien aquí, ¿podría dar más detalles al respecto?
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |