そんな関数を考えるのは面倒なので,私ならマクロでやります。
ノルマがB列2行目以降にあって,それに対応する復習がC列2行目以降に書き出されることを前提にすると,こんな感じです。
Sub aaa()
n = Range("B2").End(xlDown).ROW - 1 '日数は最後の行の行番号-1です
work = Range("B2").Resize(n)
ReDim brushup(1 To n)
For i = 1 To n
k = i
For j = 3 To n
k = k + j
If k > n Then Exit For
brushup(k) = brushup(k) & " " & work(i, 1)
Next j
Next i
Range("C2").Resize(n) = WorksheetFunction.Transpose(brushup)
End Sub
お礼
この度は、素晴らしいご回答ありがとうございます、 感動いたしました。 いただいたプログラムを実行してみましたところ、 意図する挙動がエレガントに実行されました。 その結果、 2020年の5月1日の時点で、復習しなければならない項目は実現不可能な数になることが判明いたしました。 よって当初の方法を変更し、 3日間かけて一つのノルマを達成するようにしたところ、 増加のペースは緩やかになり 2020年5月1日の時点で、復習する項目数(文字数)は9つ程度になり、 私にとって実現可能なプランとなりました。 この度はお時間を割いて当方の拙文に真剣に向き合っていただき、このうえなき完ぺきなプログラムを授けていただきどうもありがとうございます。こちらのご回答をいただけなければ私は深い闇の中に沈んでおりました。 f272様にとって、素晴らしいゴールデンウィークとなりますようにお祈りしております。 私にとっては、f272様のおかげで素晴らしいゴールデンウィークとなりました。 ご慈悲に感謝します。