这是我的项目的精简版本。
我有一张通过 PowerQuery 根据每日工时表计算得出的数据表。这代表了过去十二个月中每位员工的病假时间。
我在这张表之后运行了一系列其他查询,输入了员工姓名、他们工作的机构以及他们的计算结果布拉德福德评分
最后,我得到了一张包含公式的表格,这样我就可以按设施进行筛选,然后发送给各个经理。下图中的
列G:M
将是溢出范围,尽管在我的示例中,只有第一列溢出。
在上面表格旁边,我想添加每个员工缺勤时间的日期。这样经理就可以通知我从评分中删除某些时间段,因为问题已经得到处理。
此公式可以实现这一点,但我需要将溢出范围内的每一行向下拖动。我尚未决定如何呈现它,因此有两个返回值。
=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)
如果可能的话,我希望它能溢出来,但想不通。
我的一些尝试:
在每一行返回相同的日期。
=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))
返回 #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)
仅返回第一行:
=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)