Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
mforest
Frequent Visitor

Una segmentación de varios campos

¡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 personaACTIVIDAD 1 COMPLETADAACTIVIDAD 2 COMPLETADAACTVITIY 3 COMPLETADO
Visita 1Persona 1Actividad 1Actividad 2
Visita 2Persona 1 Actividad 3
Visita 1Persona 2 Actividad 2Actividad 3
Visita 1Persona 3Actividad 1
Visita 2Persona 3 Actividad 2
Visita 1Persona 4Actividad 1 Actividad 3

1 ACCEPTED SOLUTION
v-rzhou-msft
Community Support
Community Support

Hola @mforest

Al igual que lbendlin y 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.

1.png

Resultado

2.png

2. Utilice DAX

Crear nueva tabla en la pestaña Modelado:

3.png

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:

4.png

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:

5.png

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 ques seleccione Actividad1 para realizar una prueba.

Resultado:

6.png

Puede descargar el archivo pbix de este enlace:

https://qiuyunus-my.sharepoint.com/:u:/g/personal/tongzhou_qiuyunus_onmicrosoft_com/EXb0fbEc0WVDt0jt...

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.

View solution in original post

4 REPLIES 4
mforest
Frequent Visitor

¡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!

v-rzhou-msft
Community Support
Community Support

Hola @mforest

Al igual que lbendlin y 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.

1.png

Resultado

2.png

2. Utilice DAX

Crear nueva tabla en la pestaña Modelado:

3.png

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:

4.png

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:

5.png

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 ques seleccione Actividad1 para realizar una prueba.

Resultado:

6.png

Puede descargar el archivo pbix de este enlace:

https://qiuyunus-my.sharepoint.com/:u:/g/personal/tongzhou_qiuyunus_onmicrosoft_com/EXb0fbEc0WVDt0jt...

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.

amitchandak
Super User
Super User

@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

https://radacad.com/userelationship-or-role-playing-dimension-dealing-with-inactive-relationships-in...

lbendlin
Super User
Super User

Sí, despvorar es el camino a seguir. Describa dónde se quedó atascado intentando eso.

Usted querrá terminar con una mesa

VISITA - Persona - Actividad #

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.