Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hola a todos,
Espero que se mantengan a salvo.
Actualmente estoy aprendiendo power bi, y atrapado en medio de un proyecto de prueba que creé.
Creé una base de datos, con una lista de personas, organizada según grupos (GR 1-4) y categorías (empleado, instructor, gerente). La tabla "People" tiene este aspecto:
Definí franjas horarias (asociadas a fechas en otra tabla), y todo el mundo me dio sus disponibilidades para una reunión en cada franja horaria en particular. Aquí un ejemplo o la tabla "Disponibilidad":
Mi objetivo es encontrar qué franja horaria es la mejor para nuestra reunión. La reunión debe establecerse en un momento en el que haya al menos un instructor, todos los gerentes del grupo. A continuación, encontrará la fecha con el máximo de empleados.
Me gustaría mostrar en esta mesa el recuento de empleados, gerentes e instructores.
Me gustaría añadir filtros, mostrar sólo las ranuras donde:
Para los instructores, creé una medida
CountInstructor =
CALCULATE(DISTINCTCOUNT(Availability[Email Address]),
People[Category] = "Instructor")
Y establezca el filtro como: CountInstructor no está en blanco. La ranura SL 4 desaparece. Lo cual es genial
Tengo dos preguntas:
Avísame si mi explicación es lo suficientemente clara,
Y gracias de antemano!!
Solved! Go to Solution.
Hola @DwanYb ,
Para los gerentes puede hacer una medida dinamílica haciendo algo similar a esto:
CountManager =
IF (
CALCULATE (
DISTINCTCOUNT ( Availability[Email Address] ),
People[Category] = "Manager"
)
= CALCULATE (
DISTINCTCOUNT ( Availability[Email Address] ),
ALLSELECTED ( Table[GroupKey] ),
People[Category] = "Manager"
),
1,
0
)
A continuación, filtre por valor 1 cuando todos los administradores de los grupos seleccionados estén disponibles.
Puede cambiar el valor 1 y 0 para los valores que desee.
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHola
Cree primero un parámetro What If.
A continuación, pruebe esta medida:
Check =
VAR DIstinctCount_of_Manager_per_SlotKey =
CALCULATE (
DISTINCTCOUNT ( Slot[Email Address] ),
FILTER (
Slot,
Slot[Email Address]
= CALCULATE (
MAX ( People[Email Address] ),
FILTER ( People, People[Category] = "Manager" )
)
)
)
RETURN
IF ( DIstinctCount_of_Manager_per_SlotKey = Parameter[Parameter Value], 1, 0 )
Cuando se selecciona el valor en la segmentación de datos, se muestra:
Espero que esto ayude.
Saludos
Giotto
Hola @v-gizhi-msft,
Parece ser una gran solución también. La segmentación de datos es realmente muy útil para mi siguiente paso: seleccionar cuántos "empleados" quiero en la reunión.
Sin embargo, tuve problemas con:
CALCULATE (
MAX ( People[Email Address] ),
FILTER ( People, People[Category] = "Manager" )
)
Parece que selecciona el lentgh de la dirección de correo electrónico (¿verdad?), que devolverá sólo 1 en mi caso.
Luego adapté su solución, y parece funcionar bien:
VAR DistinctCount_Manager_perSL_two =
CALCULATE(
DISTINCTCOUNT(Availability[Email Address]),
People[Category] = "Manager"
)
RETURN
IF ( DistinctCount_Manager_perSL_two = Parameter[Parameter Value], 1, 0)
Gracias 🙂
Hola
El Max(People[Email Address]) en esta fórmula devolverá el correo electrónico de cada fila qué categoría es el administrador para vincular a otra tabla de ranuras, pero no devolver la longitud de la dirección de correo electrónico:
CALCULATE (
MAX ( People[Email Address] ),
FILTER ( People, People[Category] = "Manager" )
)
Si mi respuesta ha ayudado a resolver su problema, por favor márquelo como una solución para que otros lo vean.
¡Gracias!
Saludos
Giotto
Muy bien, gracias por la explicación Giotto. Necesito revisar lo que estaba mal en mi documento mientras lo usaba entonces.
Gracias de nuevo.
Hola @DwanYb ,
Para los gerentes puede hacer una medida dinamílica haciendo algo similar a esto:
CountManager =
IF (
CALCULATE (
DISTINCTCOUNT ( Availability[Email Address] ),
People[Category] = "Manager"
)
= CALCULATE (
DISTINCTCOUNT ( Availability[Email Address] ),
ALLSELECTED ( Table[GroupKey] ),
People[Category] = "Manager"
),
1,
0
)
A continuación, filtre por valor 1 cuando todos los administradores de los grupos seleccionados estén disponibles.
Puede cambiar el valor 1 y 0 para los valores que desee.
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHola @MFelix,
Gracias por tu respuesta, funciona muy bien. Necesitaré trabajar un poco más con la función ALLSELECTED.
Acabo de modificar un poco su solución para adaptarla a mi caso, utilizando People[Email Address] en lugar de Availability[Email Address]. Pero creo que es a lo que te referías.
¡Gracias de nuevo!
CountManager =
IF (
CALCULATE (
DISTINCTCOUNT ( Availability[Email Address] ),
People[Category] = "Manager"
)
= CALCULATE (
DISTINCTCOUNT ( People[Email Address] ),
ALLSELECTED ( Groups[GroupKey] ),
People[Category] = "Manager"
),
1,
0
)
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.