
Esta es una versión muy reducida de mi proyecto.
Tengo una tabla de datos calculada a partir de hojas de horas diarias a través de PowerQuery. Representa los períodos de enfermedad que ha tenido cada empleado durante los últimos doce meses.
Realizo muchas otras consultas después de esta tabla, que incluyen el nombre del empleado, las instalaciones en las que trabaja y su valor calculado.Puntuación de Bradford
Finalmente termino con una hoja que contiene la fórmula para poder filtrar por instalación y enviarla a varios gerentes.
Las columnas G:M
de la imagen siguiente serían un rango desbordado, aunque en mi ejemplo es solo la primera columna la que se desborda.
Al lado de la tabla de arriba quiero agregar las fechas de cada período de ausencia junto a cada empleado. La idea es que el entrenador pueda informarme que elimine ciertos períodos de la puntuación a medida que se resuelva el asunto.
Esta fórmula hará eso, pero necesitaría arrastrar hacia abajo para cada fila en mi rango desbordado. Aún no he decidido cómo quiero presentarlo, por lo que hay dos valores de retorno.
=LET(SickDates,TEXT(FILTER(FILTER(RollingSick,RollingSick[Emp No]=G2),{0,0,0,1,1}),"dd-mm-yy"),
JoinDates, INDEX(SickDates,,1) & " to " & INDEX(SickDates,,2),
Return1, TEXTJOIN(" | ",FALSE,JoinDates),
Return2, TRANSPOSE(JoinDates),
Return1)
Me gustaría que esto se extendiera si es posible, pero no puedo entenderlo.
Algunos de mis intentos:
Devuelve las mismas fechas en cada fila.
=IF(G2#="","",
LET(SickDates,TEXT(FILTER(FILTER(RollingSick,RollingSick[Emp No]=G2),{0,0,0,1,1}),"dd-mm-yy"),
JoinDates, INDEX(SickDates,,1) & " to " & INDEX(SickDates,,2),
Return1, TEXTJOIN(" | ",FALSE,JoinDates),
Return2, TRANSPOSE(JoinDates),
Return1))
Devoluciones #N/A
=LET(SickDates,TEXT(FILTER(FILTER(RollingSick,RollingSick[Emp No]=INDEX(G2#,SEQUENCE(COUNTA(G2#)))),{0,0,0,1,1}),"dd-mm-yy"),
JoinDates, INDEX(SickDates,,1) & " to " & INDEX(SickDates,,2),
Return1, TEXTJOIN(" | ",FALSE,JoinDates),
Return2, TRANSPOSE(JoinDates),
Return1)
Sólo devuelve la primera fila:
=LET(SickDates,TEXT(FILTER(FILTER(RollingSick,RollingSick[Emp No]=INDEX(G2#,ROW()-ROW($G$1))),{0,0,0,1,1}),"dd-mm-yy"),
JoinDates, INDEX(SickDates,,1) & " to " & INDEX(SickDates,,2),
Return1, TEXTJOIN(" | ",FALSE,JoinDates),
Return2, TRANSPOSE(JoinDates),
Return1)