Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
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_ID | Round_End | eNPS_Type |
00001 | 1/19/2025 | Promotor |
00001 | 2/16/2025 | Promotor |
00001 | 3/16/2025 | Promotor |
00002 | 1/19/2025 | Pasivo |
00002 | 2/16/2025 | Detractor |
00002 | 3/16/2025 | Pasivo |
00003 | 1/19/2025 | Promotor |
00003 | 2/16/2025 | Promotor |
00004 | 2/16/2025 | Detractor |
00004 | 3/16/2025 | Promotor |
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_ID | Round_End | eNPS_Type |
00001 | 1/19/2025 | Promotor |
00002 | 1/19/2025 | Pasivo |
00003 | 1/19/2025 | Promotor |
Promotores - 2, Pasivos - 1, Detractor - 0
Febrero
Employee_ID | Round_End | eNPS_Type |
00001 | 2/16/2025 | Promotor |
00002 | 2/16/2025 | Detractor |
00003 | 2/16/2025 | Promotor |
00004 | 2/16/2025 | Detractor |
Promotores - 2, Pasivos - 0, Detractores - 2
Marzo
Employee_ID | Round_End | eNPS_Type |
00001 | 3/16/2025 | Promotor |
00002 | 3/16/2025 | Pasivo |
00003 | 2/16/2025 | Promotor |
00004 | 3/16/2025 | Promotor |
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
@Kryne7 Tengo un par de videos en mi canal de YT en la función INDEX:
Exploremos la función INDEX en Power BI y aprendamos en qué se diferencia de otras funciones WINDOW
@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
¡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.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.