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.
Hola a todos,
mi tabla de hechos que muestra los detalles de los cambios como se muestra a continuación:
ID de cambio | Nombre del personal | Nombre de la ubicación | cambio de inicio | final de turno |
1001 | A | aa | 10/08/2020 13:00 | 10/08/2020 18:00 |
1002 | B | aa | 10/08/2020 13:00 | 10/08/2020 15:00 |
1003 | C | aa | 10/08/2020 13:00 | 10/08/2020 15:00 |
1004 | D | aa | 10/08/2020 13:00 | 10/08/2020 17:00 |
1005 | E | aa | 10/08/2020 19:00 | 10/08/2020 20:00 |
1006 | F | aa | 12/08/2020 21:30 | 13/08/2020 6:30 |
1007 | G | aa | 12/08/2020 21:30 | 13/08/2020 6:30 |
1008 | H | Bb | 13/08/2020 14:00 | 13/08/2020 15:00 |
1009 | I | Bb | 13/08/2020 15:00 | 13/08/2020 18:00 |
1010 | J | Bb | 13/08/2020 13:00 | 13/08/2020 14:00 |
1011 | A | Bb | 13/08/2020 13:00 | 13/08/2020 16:00 |
1012 | K | Bb | 13/08/2020 17:00 | 13/08/2020 21:00 |
Quiero hacer un informe que cuando seleccionamos un personal me muestran todo el resto del personal que estaba en contacto con el personal seleccionado.
así que si selecciono A debería ser capaz de identificar a todo el personal que estaba en contacto con A:
Personal seleccionado | locatiton | Fecha | personal conocido |
A | aa | 10/08/2020 | B |
A | aa | 10/08/2020 | C |
A | aa | 10/08/2020 | D |
A | Bb | 13/08/2020 | H |
A | Bb | 13/08/2020 | I |
A | Bb | 13/08/2020 | J |
Por favor, ayúdame a definir una medida que pueda proporcionar tal resultado. o si necesito realizar algún cambio en el modelo de datos mediante la creación de más tablas y relaciones?
Gracias
Hola @SadStatue
pruebe esto crear una tabla como se muestra a continuación y filtrar en [Nombre del personal]
Table =
GENERATE(
Table,
SELECTCOLUMNS(
CALCULATETABLE(
VALUES( Table[Staff Name] ),
(EARLIER((Table[shift start]) <= Table[shift start] &&
EARLIER(Table[shift end]) > Table[shift Start]) ||
(EARLIER((Table[shift end]) >= Table[shift start] &&
EARLIER(Table[shift start]) < Table[shift Start])
)
),
Table[Shift ID], Table[Staff Name], Table[Location Name], Table[Staff Name],"MetStaff"
)
)
Hope it resolves your issue? Did I answer your question? Mark my post as a solution! Appreciate your Kudos, Press the thumbs up button!! Linkedin Profile |
Hola Pranti,
Gracias por su respuesta Pero no puedo crear una tabla como parece que hay algunos erros cus de sintaxis que no reconoce la columna en segundo antes.
Sería apreciado si usted vuelve a ver su respuesta para ver por qué no es aplicable
Salud
@SadStatue - Difícil. Es 1AM aquí y ..., lo más cerca que he podido venir es:
Measure 16 =
VAR __Name = MAX([Staff Name])
VAR __Start = MAX([shift start])
VAR __End = MAX ([shift end])
VAR __Table = FILTER(ALL('Table (16)'),[Staff Name] <> __Name && ([shift start] >= __Start && [shift end] <= __End))
RETURN
CONCATENATEX(__Table,[Staff Name],",")
Necesita trabajo. PBIX se adjunta debajo de sig. Está cerca. Cuadro 16, Página 16.
Hola Greg,
Gracias por su apoyo y respuesta rápida incluso en la medianoche!
He intentado lo que sugeriste, pero como no cubre la ubicación lo cambié de la siguiente manera
Medida 16 ?
VAR __Name á MAX([Nombre del pentagrama])
VAR __Start - MAX([shift start])
VAR __End - MAX ([shift end])
VAR __Location - MAX([ubicación])
VAR __Table - FILTER(ALL('Table (16)'),[Nombre del pentagrama] <> __Name && ([inicio de turno] >- __Start && [shift end] <- __End) && [location] __Location)
devolución
CONCATENATEX(__Table,[Nombre del personal],",")
Proporciona algunos resultados, pero no era preciso. Siento que la comparación del tiempo de cambio no se define correctamente como cualquier cruce entre los turnos es aceptable (Si entiendo la lógica de la medida correctamente debe ser sth como: ([inicio de turno] > __Start && [inicio del turno] <-__End)OR([shift end] <- __End && [shift end] >- __Start) OR ([inicio de turno] <- __Start && [shift end] >- __End) )
Pero aún así aún no funciona.
Sería genial si usted puede tener una segunda mirada a su respuesta y refinarla de una manera que funcione.
Salud
@SadStatue, pruebe una medida como esta y compruebe
medida :
var _staff á filter(distinct(Table[shift start]), table[Staff Name] en allselected(table[Staff Name])) // o use -- in values(table[Staff Name])
devolución
calculate(countrows(Table),all(table[Staff Name]), filter(Table, Table[shift start] en _staff))
Hola Amit
Gracias por su respuesta. Pero no pude crear tal medida.
Cuando utilizo "distinct(Table[shift start])" entonces no puedo usar "table[Staff Name]" como el siguiente argumento. Y cuando sólo uso "distinct(Table)" entonces veo un error de "El número de argumentos no es válido. La función CONTAINSROW debe tener un valor para cada columna de la expresión de tabla" aunque no he utilizado "CONTAINSROW" en absoluto!!
¿Podrías volver a verlo y ver qué tiene de malo?
Salud
Hola @SadStatue ,
Puede hacer referencia al siguiente vínculo para usar 'crossjoin' para expandir su intervalo de fechas y vincular a la tabla sin procesar, a continuación, puede crear una tabla con campos de tabla de expansión y usar filter para interacr con estos registros para lograr su requisito:
saludos
Xiaoxin Sheng
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |