私は映画を観ていて、177 本の映画があります。すべてのタイトルを A 列に入れて、タイトルをランダム化して表示する方法を見つけましたが、視聴中用の列も用意し、視聴済みの場合は、すべての映画が観られるまで、視聴済みの映画をスキップできるようにしたいです。これまでのコードは次のとおりです。
=INDIRECT("B"&RANDBETWEEN(1;COUNTA(B21:B178)))
答え1
私の提案は、ランダムな数字の列を追加することです。次に、そのランダムな数字に基づいて全体を並べ替えます。指定された順序で映画を視聴します。すべて視聴したら、リストを再生成して再度並べ替えます。
239 Movie A
475 Movie B
683 Movie C
241 Movie D
748 Movie E
ソート後、(Excel では OOCalc でも同じことが行われると想定します) ランダムな数字が再生成されます。
145 Movie A
978 Movie D
783 Movie B
322 Movie C
773 Movie E
ファイルを閉じて再度開いたときにも、乱数は再生成されるため (少なくとも Excel では)、リストを完全に確認するまで再度並べ替えないでください。
本当に凝ったことをしたい場合、たとえば、30 日間に同じ映画を 2 回見ないようにしたい場合 (つまり、ある種類の最後の映画が次の種類の最初の映画になるというランダムな可能性を回避する場合)、列を最後に見たときのタイムスタンプとして使用し、30 にランダムな数字を追加して並べ替えることができます。複数の映画に対して同じランダムな数字が生成される場合に備えて、2 番目のランダムな数字列を追加して、ランダム性を高めることもできます。
バリエーションと可能性は事実上無限です。