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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Syndicate_Admin
Administrator
Administrator

Medir para contar entradas utilizando la fecha más reciente en comparación con una fecha dinámica

Estoy bastante seguro de que alguna combinación de VAR, CalculateTable, Summarize o similares puede darme una medida de lo que quiero, pero no estoy teniendo suerte. Voy a incluir datos de muestra para, con suerte, explicar la situación con mayor claridad.

Primero, tengo una tabla con los datos de la encuesta (Survey_Answers). Cada fila es una sola respuesta de un solo empleado, pero cada empleado responderá la encuesta varias veces al año, ya que se publica mensualmente. A continuación, tengo tres columnas donde Employee_ID es el ID único por empleado, Round_End es cuándo terminó la ronda de encuesta específica y eNPS_Type que es "Promotor", "Pasivo" o "Detractor".

Employee_IDRound_EndeNPS_Type

00001

1/19/2025Promotor
000012/16/2025Promotor
000013/16/2025Promotor
000021/19/2025Pasivo
000022/16/2025Detractor
000023/16/2025Pasivo
000031/19/2025Promotor
000032/16/2025Promotor
000042/16/2025Detractor
000043/16/2025Promotor

La forma en que debe funcionar el cálculo es que en un gráfico de líneas (o usando un segmentador que el usuario pueda elegir) cada fecha Round_End debe contar el recuento distinto de Employee_ID de Promotores, Pasivos y Detractores, pero usando la última fecha antes o igual a la Fecha Round_End seleccionada.

Así que a continuación se muestra cómo esperaría que se viera la "tabla calculada" para cada uno de estos meses y el recuento posterior de cada una de las tres categorías.

Enero

Employee_IDRound_EndeNPS_Type

00001

1/19/2025Promotor
000021/19/2025Pasivo
000031/19/2025Promotor

Promotores - 2, Pasivos - 1, Detractor - 0

Febrero

Employee_IDRound_EndeNPS_Type
000012/16/2025Promotor
000022/16/2025Detractor
000032/16/2025Promotor
000042/16/2025Detractor

Promotores - 2, Pasivos - 0, Detractores - 2

Marzo

Employee_IDRound_EndeNPS_Type
000013/16/2025Promotor
000023/16/2025Pasivo
000032/16/2025Promotor
000043/16/2025Promotor

Promotores - 3, Pasivo - 1, Detractor - 0

Resalté la respuesta de Employee_ID 00003 en el tercer ejemplo porque creo que aquí es donde entra la complicación. Este empleado específico no realizó la encuesta en marzo, por lo que el conteo debe incluir la "última" respuesta de esa persona, que fue la respuesta 2/16.

Tengo una tabla de dimensiones con una columna de solo las fechas del Round_End pero no estoy seguro de si es necesario.

Al final, me gustaría una medida que me proporcione el recuento total de entradas que cumplan estos requisitos y, a continuación, una medida para los recuentos de cada una de las tres categorías.

Como beneficio adicional, hay una arruga más, pero puede que no sea un gran problema después de que descubra esto, pero también la arrojaré aquí. En la primera tabla de Survey_Answers, hay una columna Termination_Date para los empleados que han realizado la encuesta pero que luego fueron despedidos. Queremos incluir sus entradas durante 3 meses a partir de su fecha de finalización y luego filtrarlas después de eso. Creé una columna Inclusion_Date que simplemente adelanta la fecha de finalización 12 semanas, lo que luego da la fecha que sigue, ya no queremos incluir sus respuestas a la encuesta. No estoy seguro de si esta parte se puede incorporar a la medida sobre la que estoy preguntando arriba o si esto debe ser una cosa separada.

¡Cualquier ayuda es muy apreciada! Gracias.

Kristofer

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@Kryne7 intente seguir la medida, use round_end fecha de la tabla de dimensiones que ha creado, asegúrese de que la tabla no tenga relación con la tabla principal:

Top = 
VAR __SelectedDate = SELECTEDVALUE ( Round_End[Round_End] )

VAR __Return = 
CALCULATE ( 
    COUNTROWS ( 'Table1' ),
    INDEX (
            1,
            SUMMARIZE ( FILTER ( ALL ( Table1 ), Table1[Round_End] <= __SelectedDate ), Table1[Employee_ID], Table1[Round_End]),
            ORDERBY ( Table1[Round_End], DESC ),
            PARTITIONBY ( Table1[Employee_ID] )
            
        )
)
RETURN __Return 

parry2k_0-1741901661939.png

¡Gracias! Eso funcionó perfectamente.

Nunca he usado la función Índice, pero gracias a su solución, creo que he aprendido sobre una nueva herramienta para el conjunto de herramientas.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

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

March2025 Carousel

Fabric Community Update - March 2025

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

Top Solution Authors
Top Kudoed Authors