
これは私のプロジェクトの非常に簡略化されたバージョンです。
PowerQuery を通じて毎日のタイムシートから計算されたデータの表があります。これは、過去 12 か月間に各従業員が罹患した病欠期間を表しています。
このテーブルに従業員名、勤務先の施設、計算された従業員名を入力する他のクエリをいくつか実行します。ブラッドフォードスコア
最終的に、さまざまなマネージャーに送信するために施設別にフィルター処理できる数式を含むシートが完成します。下の画像の
列はG:M
流出範囲になりますが、私の例では流出するのは最初の列だけです。
上記の表の横に、各従業員の横に各欠勤期間の日付を追加したいと思います。その目的は、問題が処理されるときに、マネージャーが私に特定の期間をスコアから除外するように通知できるようにすることです。
この数式はそれを実行しますが、流出した範囲の各行を下にドラッグする必要があります。まだ表示方法を決めていないので、戻り値は 2 つあります。
=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)