こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel この場合の関数 添付画像あります

日々、ノルマを設け、それを分かりやすく管理するため文字で置き換え、
添付画像のように、1日目を「あ」、2日目を「い」、3日目を「う」というように、50音順に一日一字ずつノルマを課すものとし、50音すべて終了後はローマ字AからZ、それがおわったら小文字のaからzなどというように、日々何かしらのノルマ(文字か記号か数字の1字)があるものと仮定します。

ただし、1度達成したノルマは、復習として、次の間隔で繰り返す必要があります。
最後に達成してから3日後、最後に達成してから4日後、最後に達成してから5日後、最後に達成してから6日後というように、繰り返すスパンが1日ずつ広がる階差数列(?)になります。
たとえば、5月1日に、ノルマ「あ」を達成したとします。
すると、その3日後の5月4日、そして5月4日から4日後の5月8日、さらに5月8日から5日後の5月13日というように、ノルマ「あ」を再び達成する必要があります。

この場合、2018年5月1日から記録を開始するとすると、5月20日には「い、く、す、ち」という、過去達成した4つのノルマを再度繰り返すことになりますが、このようにして記録を続けていくと、2020年5月1日のノルマの個数はいくつになっていますか。
もし、その結果が膨大なようでしたら、繰り返すスパンの最大間隔を30日間とし、以降は30日間おきに繰り返すものとし31日間以上間隔をあけないようにしたいです。
添付画像の「復習列」に、自動でその日に繰り返すべきノルマの文字を出力させたいのですが、その場合の関数を教えていただけますか。

その都度、紙面上のカレンダーにメモしていく労力を考えると気が遠くなります。

質問の主旨にご理解ご協力を頂ける方がおりましたら、何とぞ、よろしくお願い致します。

投稿日時 - 2018-05-02 15:41:10

QNo.9494396

すぐに回答ほしいです

質問者が選んだベストアンサー

そんな関数を考えるのは面倒なので,私ならマクロでやります。
ノルマが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

投稿日時 - 2018-05-02 20:55:11

お礼

この度は、素晴らしいご回答ありがとうございます、
感動いたしました。

いただいたプログラムを実行してみましたところ、
意図する挙動がエレガントに実行されました。
その結果、
2020年の5月1日の時点で、復習しなければならない項目は実現不可能な数になることが判明いたしました。
よって当初の方法を変更し、
3日間かけて一つのノルマを達成するようにしたところ、
増加のペースは緩やかになり
2020年5月1日の時点で、復習する項目数(文字数)は9つ程度になり、
私にとって実現可能なプランとなりました。
この度はお時間を割いて当方の拙文に真剣に向き合っていただき、このうえなき完ぺきなプログラムを授けていただきどうもありがとうございます。こちらのご回答をいただけなければ私は深い闇の中に沈んでおりました。
f272様にとって、素晴らしいゴールデンウィークとなりますようにお祈りしております。
私にとっては、f272様のおかげで素晴らしいゴールデンウィークとなりました。
ご慈悲に感謝します。

投稿日時 - 2018-05-02 22:50:41

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

スプレッドシートで使う関数では実現できないと思いますし、
また、
2018年5月1日から2020年5月1日までで
365日*2年=730日ありますので
730の文字種が必要ですネ?

ひらがな:40
カタカナ:40*2=80(半角/全角)
ローマ字:半角/全角、大文字/小文字を区別して 26*4=104
ポピュラーな記号:ざっくり50

まだまだ足りませんね。
ギリシャ文字を加えても足りませんから
あとは漢字ってことになりましょうか。

簡単なマクロを用意して数えてみました。
2020年5月1日時点で(タブン)35文字が並ぶことになります。

730の文字種をA列に縦に並べる用意があれば
マクロでの提示は可能と思います。
マクロは扱えますか?

投稿日時 - 2018-05-02 21:17:28

お礼

長文にもかかわらずお時間を割いてご回答いただき、
ありがとうございます。
お詫びと訂正
不正確な表記ミスを連発し申し訳ありません。
下記の通り訂正いたします
誤)
3日間かけて一つのノルマを達成するようにしたところ、
増加のペースは緩やかになり
2020年5月1日の時点で、復習する項目数(文字数)は9つ程度になり
正)
4日間かけて一つのノルマを達成するようにしたところ、
増加のペースは緩やかになり
2020年5月1日の時点で、復習する項目数(文字数)は9つ程度になり

投稿日時 - 2018-05-02 22:55:41

あなたにオススメの質問