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!
Tengo problemas con la colocación de varios campos en una segmentación de datos. Estoy trabajando con lo que es esencialmente los datos de la encuesta de citas (ver ejemplo de tabla a continuación). En la encuesta, tenemos algunas preguntas que son "seleccione todas las que correspondan". A continuación, los datos se separan en lo que es esencialmente columnas 0/1. Me gustaría crear una segmentación de datos que incluya Actividad 1, Actividad 2, Actividad 3, etc. para poder obtener un recuento de quién y cuántas personas participaron en cada actividad.
He mirado hierarchy Slicers (¿que realmente no funciona ya que no hay una jerarquía para las actividades - pero siento que esto podría ser una solución para mí?) y he intentado despivoar, pero ya que tengo varias columnas que se transformaron en 0/1 debido a una opción de selección de todo el aplicar, eso tampoco parece funcionar realmente.
¡Abierto a probar cualquier cosa! ¡Gracias!
Visitar # | Identificación de la persona | ACTIVIDAD 1 COMPLETADA | ACTIVIDAD 2 COMPLETADA | ACTVITIY 3 COMPLETADO |
Visita 1 | Persona 1 | Actividad 1 | Actividad 2 | |
Visita 2 | Persona 1 | Actividad 3 | ||
Visita 1 | Persona 2 | Actividad 2 | Actividad 3 | |
Visita 1 | Persona 3 | Actividad 1 | ||
Visita 2 | Persona 3 | Actividad 2 | ||
Visita 1 | Persona 4 | Actividad 1 | Actividad 3 |
Solved! Go to Solution.
Hola @mforest
Al igual que lbendlin y amitchandak respondieron antes, podemos resolver este problema por Unpivot y Measure.
En primer lugar, necesitamos usar unpivot para cambiar nuestro modelo de datos.
Dos maneras:
1. Columna de descompo de uno en Power Query Editor:
Abra Power Query Editor —— Seleccione 3 columnas como se muestra a continuación —— Use Unpivot Columns in Transform Tab —— Eliminar columna de atributo.
Resultado:
2. Utilice DAX:
Crear nueva tabla en la pestaña Modelado:
Unpivot By DAX = UNION(
SELECTCOLUMNS('Table',"visit#",'Table'[Visit#],"PersonalID#",'Table'[Person ID],"Activity#",'Table'[ACTIVITY 1 COMPLETED]),
SELECTCOLUMNS('Table',"visit#",'Table'[Visit#],"PersonalID#",'Table'[Person ID],"Activity#",'Table'[ACTIVITY 2 COMPLETED]),
SELECTCOLUMNS('Table',"visit#",'Table'[Visit#],"PersonalID#",'Table'[Person ID],"Activity#",'Table'[ACTVITIY 3 COMPLETED]))
Resultado:
Entonces necesitamos una segmentación para filtrar la actividad:
Crea una nueva tabla como la anterior y úsalo para crear una segmentación.
Slicer = DISTINCT('Unpivot in PowerQueryEditor'[Value])
Resultado:
Luego creamos dos medidas. Agregue Measure1 a Table(Unpivot en PowerQueryEditor) y use Measure2 para crear una tarjeta. Podemos ver el número de personas en Card.
Medida1:
Measure1 =
VAR _a = VALUES(Slicer[Value])
return
CALCULATE(MAX('Unpivot in PowerQueryEditor'[Person ID]),FILTER('Unpivot in PowerQueryEditor','Unpivot in PowerQueryEditor'[Value] in _a))
Medida 2:
Measure 2 =
VAR _a = VALUES(Slicer[Value])
return
CALCULATE(COUNT('Unpivot in PowerQueryEditor'[Person ID]),FILTER('Unpivot in PowerQueryEditor','Unpivot in PowerQueryEditor'[Value] in _a))
Todo está hecho, deje que’s seleccione Actividad1 para realizar una prueba.
Resultado:
Puede descargar el archivo pbix de este enlace:
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
¡Gracias a todos! Parece que un depivo es el camino a seguir. Mi conjunto de datos tiene varias preguntas de "seleccionar todas las que se aplican" que se transformaron en 0/1, por lo que me preocupaba cómo el despivot trataría mis otras columnas 0/1 (y si hubiera una mejor manera). Ya que están seguros de que unpivot es el camino a seguir, simplifiqué mi mesa y creo que descubrí cómo puedo hacer que funcione. Me siento más cómodo trabajando con datos anchos que largos, así que el despivot es algo a lo que necesito acostumbrarme, y averiguar cómo usarlo.
¡Gracias a todos por sus respuestas! ¡Muy apreciado!
Hola @mforest
Al igual que lbendlin y amitchandak respondieron antes, podemos resolver este problema por Unpivot y Measure.
En primer lugar, necesitamos usar unpivot para cambiar nuestro modelo de datos.
Dos maneras:
1. Columna de descompo de uno en Power Query Editor:
Abra Power Query Editor —— Seleccione 3 columnas como se muestra a continuación —— Use Unpivot Columns in Transform Tab —— Eliminar columna de atributo.
Resultado:
2. Utilice DAX:
Crear nueva tabla en la pestaña Modelado:
Unpivot By DAX = UNION(
SELECTCOLUMNS('Table',"visit#",'Table'[Visit#],"PersonalID#",'Table'[Person ID],"Activity#",'Table'[ACTIVITY 1 COMPLETED]),
SELECTCOLUMNS('Table',"visit#",'Table'[Visit#],"PersonalID#",'Table'[Person ID],"Activity#",'Table'[ACTIVITY 2 COMPLETED]),
SELECTCOLUMNS('Table',"visit#",'Table'[Visit#],"PersonalID#",'Table'[Person ID],"Activity#",'Table'[ACTVITIY 3 COMPLETED]))
Resultado:
Entonces necesitamos una segmentación para filtrar la actividad:
Crea una nueva tabla como la anterior y úsalo para crear una segmentación.
Slicer = DISTINCT('Unpivot in PowerQueryEditor'[Value])
Resultado:
Luego creamos dos medidas. Agregue Measure1 a Table(Unpivot en PowerQueryEditor) y use Measure2 para crear una tarjeta. Podemos ver el número de personas en Card.
Medida1:
Measure1 =
VAR _a = VALUES(Slicer[Value])
return
CALCULATE(MAX('Unpivot in PowerQueryEditor'[Person ID]),FILTER('Unpivot in PowerQueryEditor','Unpivot in PowerQueryEditor'[Value] in _a))
Medida 2:
Measure 2 =
VAR _a = VALUES(Slicer[Value])
return
CALCULATE(COUNT('Unpivot in PowerQueryEditor'[Person ID]),FILTER('Unpivot in PowerQueryEditor','Unpivot in PowerQueryEditor'[Value] in _a))
Todo está hecho, deje que’s seleccione Actividad1 para realizar una prueba.
Resultado:
Puede descargar el archivo pbix de este enlace:
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@mforest , Una vía es unpivot
En segundo lugar, es que se crea una dimensión común a partir de estas tres columnas
ore crear una nueva mesa como
Actividad: distinct(union(distinct(Table[Activity1]),distinct(Table[Activity2]),distinct(Table[Activity3])))
y unirse con las tres actividades y luego utilizar userelation para activar la unión
Sí, despvorar es el camino a seguir. Describa dónde se quedó atascado intentando eso.
Usted querrá terminar con una mesa
VISITA - Persona - Actividad #
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.