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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

Reply
Syndicate_Admin
Administrator
Administrator

Coincidencia de cohortes de respuestas de encuestas no pivotadas - Filtros visuales basados en la respuesta

Hola a todos

En esencia, mi pregunta es esta:

¿Es posible tener un gráfico de barras con respuestas que pueda hacer coincidir por cohortes haciendo clic en la imagen, y que la misma actualización visual muestre las respuestas del grupo al resto de preguntas?

Si no, ¿cuál podría ser una buena forma de mostrar visualmente las respuestas de un grupo que alguien no sea técnico y que pueda hacer fácilmente?

Detalles a continuación.

Tengo una tabla muy grande y sin pivotar como fact_table que contiene respuestas a encuestas. También tengo varias dimensiones como preguntas, respuestas, fechas, etc.

Aquí tienes una réplica básica del fact_table (que funciona sin las dimensiones):

EMason_2-1770185656482.png

Una gran parte de lo que se espera del panel de control es la posibilidad de seleccionar respuestas y ver cómo ese grupo respondió a otras preguntas. El ID de Envío es el ID relacionado con la presentación de una encuesta, por lo que nos informa qué otras preguntas ha respondido el usuario.


Consulta la siguiente imagen como ejemplo básico usando un enfoque de tabla ancha:

En el vídeo de Q1, se selecciona la parte '5' de la barra y resalta/filtra los otros gráficos de barras.

EMason_1-1770185380609.png

¿Es posible tener este tipo de interactividad en una tabla no pivotada y no tener que crear una tabla nueva para cada pregunta? Tenemos muchas encuestas de diferentes tamaños y poder seleccionar una encuesta desde un slicer y ver todas las preguntas mientras aún así interactuar sería increíble.

Versión no funcional y sin tabla pivotante

EMason_4-1770185828628.png

Explicación de por qué lo anterior no funciona actualmente, según tengo entendido:
Cuando hago clic en "Sí" para la pregunta 1, filtra el gráfico de barras visual tanto para esa respuesta como para la pregunta, es decir, dejando todo lo demás en blanco porque cada respuesta está en su propia fila del fact_table, que se filtra porque no coinciden con la pregunta y la respuesta.

Tabla con datos, por ejemplo:

Spoiler
ID de usuarioID de la encuestaID de envíoPreguntaRespuestaPartitura
111Q15
111P25
111P3No0
111P4No0
212Q15
212P25
212P35
212P45
313Q15
313P2No0
313P35
313P4No0
414Q15
414P25
414P35
414P45
515Q1No0
515P25
515P3No0
515P45
616Q15
616P25
616P35
616P45
717Q15
717P2No0
717P35
717P45
818Q15
818P25
818P3No0
818P45
129Q13
129P2Quizás2
129P3No1
129P43
129P53

Muchas gracias por tomarte el tiempo de leer esto. ¡Avísame si puedo explicar algo más!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Gracias a todos los que respondieron, especialmente a @v-Karpurac , que fue el último a lo que buscaba.

He ideado una solución que me funciona y me permite profundizar en cohortes.

Aquí está la vista del modelo:

EMason_4-1771198969743.png

Aquí está en acción:

Sin filtros

EMason_0-1771198703727.png

Filtrando por cohorte que dijo "Sí" al primer trimestre

EMason_1-1771198727980.png

Filtrando por cohorte que dijo "Sí" al primer trimestre Y que dijo "no" al segundo trimestre

EMason_2-1771198739836.png

Cómo funciona

La clave es que el slicer sea la tabla "Desconectada".

Luego, en la medida, filtra la tabla de datos para obtener todas las filas que contienen cualquiera de las preguntas y respuestas seleccionadas. Luego, selecciona las Envíos que tengan el número exacto de Preguntas (ya que esas Entregas tienen todas las respuestas seleccionadas coincidiendo).

Medidas:

Screen Count = DISTINCTCOUNTNOBLANK('Fact'[Submission ID])

Cohort Count = 
// The currently selected answers in the disconnected table
VAR SelectedAnswers =
    VALUES ( 'Disconnected Answers'[Answer ID] )

// The questions that are selected
VAR SelectedQs =
    VALUES ( 'Disconnected Questions'[Question ID] )

VAR WantedSubmissions = 
// Select the Submission IDs
SELECTCOLUMNS(
    // Filter the table to only include Submissions with the exact number of questions required 
    FILTER(
        // Group by submission id and get the distinct count of questions
        SUMMARIZE(
            // Get all fact rows that contain the selected answer ids
            CALCULATETABLE(
                'Fact'
                ,ALL('Fact')
                ,TREATAS(SelectedAnswers,'Fact'[Answer ID])
            )
            ,'Fact'[Submission ID]
            ,"QCount", COUNTA('Fact'[Question ID])
        ),
        [QCount] = COUNTROWS(DISTINCT(SelectedQs))
    )
    ,'Fact'[Submission ID]
)

RETURN
// If statement as [Screen Count] returns blank with ,TREATAS(WantedSubmissions, 'Fact'[Submission ID]) when nothing is selected.
IF(
    OR(ISFILTERED('Disconnected Answers'),ISFILTERED('Disconnected Questions'))
    ,CALCULATE(
        [Screen Count]
        ,TREATAS(WantedSubmissions, 'Fact'[Submission ID])
    )
    ,CALCULATE(
        [Screen Count]
        ,'Fact'[Submission ID]

    )
)

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Gracias a todos los que respondieron, especialmente a @v-Karpurac , que fue el último a lo que buscaba.

He ideado una solución que me funciona y me permite profundizar en cohortes.

Aquí está la vista del modelo:

EMason_4-1771198969743.png

Aquí está en acción:

Sin filtros

EMason_0-1771198703727.png

Filtrando por cohorte que dijo "Sí" al primer trimestre

EMason_1-1771198727980.png

Filtrando por cohorte que dijo "Sí" al primer trimestre Y que dijo "no" al segundo trimestre

EMason_2-1771198739836.png

Cómo funciona

La clave es que el slicer sea la tabla "Desconectada".

Luego, en la medida, filtra la tabla de datos para obtener todas las filas que contienen cualquiera de las preguntas y respuestas seleccionadas. Luego, selecciona las Envíos que tengan el número exacto de Preguntas (ya que esas Entregas tienen todas las respuestas seleccionadas coincidiendo).

Medidas:

Screen Count = DISTINCTCOUNTNOBLANK('Fact'[Submission ID])

Cohort Count = 
// The currently selected answers in the disconnected table
VAR SelectedAnswers =
    VALUES ( 'Disconnected Answers'[Answer ID] )

// The questions that are selected
VAR SelectedQs =
    VALUES ( 'Disconnected Questions'[Question ID] )

VAR WantedSubmissions = 
// Select the Submission IDs
SELECTCOLUMNS(
    // Filter the table to only include Submissions with the exact number of questions required 
    FILTER(
        // Group by submission id and get the distinct count of questions
        SUMMARIZE(
            // Get all fact rows that contain the selected answer ids
            CALCULATETABLE(
                'Fact'
                ,ALL('Fact')
                ,TREATAS(SelectedAnswers,'Fact'[Answer ID])
            )
            ,'Fact'[Submission ID]
            ,"QCount", COUNTA('Fact'[Question ID])
        ),
        [QCount] = COUNTROWS(DISTINCT(SelectedQs))
    )
    ,'Fact'[Submission ID]
)

RETURN
// If statement as [Screen Count] returns blank with ,TREATAS(WantedSubmissions, 'Fact'[Submission ID]) when nothing is selected.
IF(
    OR(ISFILTERED('Disconnected Answers'),ISFILTERED('Disconnected Questions'))
    ,CALCULATE(
        [Screen Count]
        ,TREATAS(WantedSubmissions, 'Fact'[Submission ID])
    )
    ,CALCULATE(
        [Screen Count]
        ,'Fact'[Submission ID]

    )
)

Syndicate_Admin
Administrator
Administrator

Hola @EMason

Quería comprobar si has tenido oportunidad de revisar la información proporcionada. Si tienes más preguntas, por favor háznoslo saber. ¿Has resuelto tu problema? Si no es así, por favor comparte más detalles para que podamos ayudarte más.

Gracias.

Syndicate_Admin
Administrator
Administrator

No tengo claro qué quieres conseguir, pero asumiendo que para la misma publicación quieres saber cómo un usuario respondió a otras preguntas, puedes probar el attache pbix.

danextian_0-1770204079508.png

¡Gracias por responder! Creo que me he explicado mal.

No son las propuestas individuales las que debo revisar. Necesito revisar cientos de miles. Lo que busco es

  1. una forma de ver un subconjunto específico de preguntas que están en una encuesta (puedo seleccionar el ID de la encuesta para filtrar las preguntas) ✔️
  2. Consulta la distribución de respuestas como la que tienes en el gráfico de barras "conteo de ID de envío por pregunta y respuesta" en el PBIX. ✔️
  3. Haz clic en una parte de ese gráfico de barras para seleccionar una cohorte, por ejemplo: Todas las personas del tercer trimestre que dijeron "No"
  4. Que se muestren las respuestas de esta promoción a todas las demás preguntas (he puesto un vídeo mostrando cómo me gustaría que se viera más abajo)
    por ejemplo, para todas las personas que respondieron "No" a la pregunta 3:
    1. P1: El 33% dijo "No", el 67% dijo "Sí"
    2. P2: 100% dijo "Sí"
    3. P4: el 33% dijo "No", el 67% dijo "Sí"
    4. etcetera

Mi idea para esto es obtener los IDs de envío de la cohorte seleccionada, ya que puedo crear un subconjunto de la tabla de datos donde existen esas aportaciones (con todas las preguntas y respuestas para el id de encuesta dado). Principalmente me preguntaba si es posible tener el mismo filtro visual cuando hago clic en la cohorte o si siempre solo resaltará lo que he hecho clic (ver imágenes abajo)

Imagen que muestra que no hay resaltados en otras barras:

EMason_0-1770239519592.png

Esto es lo que se me ocurrió (no puedo compartir el pbix tal cual está con mis datos reales). En la primera imagen, he hecho clic en la puntuación de 1 de la cuarta pregunta y la segunda muestra cómo respondió esa cohorte.

EMason_1-1770241414934.png

¿Hay alguna forma de tener este comportamiento solo con el único visual? ¿O quizá una forma más amable de mostrar lo que ya tengo?

¡Gracias de nuevo!

Hola @EMason
Gracias por contactar con el foro de la comunidad de Microsoft Fabric.

He implementado soluciones utilizando datos de muestra para demostrar el enfoque correcto de análisis de cohortes, donde seleccionar una Pregunta y Respuesta específica identifica un subconjunto de envíos y recalcula sus respuestas en las preguntas restantes.

El archivo PBIX y una instantánea del resultado final están adjuntos para tu revisión. Por favor, échale un vistazo y cuéntame tus observaciones o cualquier comentario que puedas tener.

Si tienes más preguntas, por favor háznoslo saber y estaremos encantados de ayudarte.

Saludos,

Equipo de soporte comunitario de Microsoft Fabric.

Hola,

No sé cuánto puede ayudar, pero me gustaría intentarlo. ¿Podrías compartir algunos datos de ejemplo con los que trabajar y mostrar el resultado en un formato de tabla sencillo?

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

February Power BI Update Carousel

Power BI Monthly Update - February 2026

Check out the February 2026 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.