LibreOffice Calcで=RAND()を一度だけ実行するように強制する方法は?

LibreOffice Calcで=RAND()を一度だけ実行するように強制する方法は?

LibreOffice Calcで単語リストをランダムに作成しようとしています。列Aには、単語の最初の順序を表す1から15までの数字が含まれています。列Bには単語自体が含まれています。元のデータセット(A1-B16)は次のとおりです。

No. Words
1   alike
2   bear
3   cane
4   dark
5   easy
6   fill
7   grass
8   hike
9   iron
10  joke
11  kilo
12  long
13  moan
14  nose
15  ouch

=RAND()次に、リストを混在させるために使用される0と1の間の乱数を生成するC2-C16を作成します。

No. Words   RNG
1   alike   0.865621083224796
2   bear    0.931833626420918
3   cane    0.227839223621858
4   dark    0.832537867713207
5   easy    0.969775037455717
6   fill    0.896303834396809
7   grass   0.432228403811195
8   hike    0.075830198639415
9   iron    0.867408144812027
10  joke    0.603695010104631
11  kilo    0.410994968775223
12  long    0.840853885814879
13  moan    0.919710215557461
14  nose    0.181802316389395
15  ouch    0.016758784630857

次にA1-C16を選択し、RNGをキーとして昇順にソートします。結果は次のとおりです。

No. Words   RNG
15  ouch    0.766843532872873
8   hike    0.947070486803519
14  nose    0.935710387458581
3   cane    0.907095084669842
11  kilo    0.998591593185233
7   grass   0.262657114008517
10  joke    0.508633980155267
4   dark    0.686797433391668
12  long    0.124417578504844
1   alike   0.316587339544393
9   iron    0.780943260363561
6   fill    0.020870056655958
13  moan    0.421603151053937
2   bear    0.017301889523655
5   easy    0.904484088935699

列はソート時に再計算されますが、ソートは前の値に基づいて行われます。したがって、サードパーティが表示すると、リストが正しくソートされていないように見えます。私は何でも(フォントの変更、フォントサイズ、色の変更、コピー、貼り付けなど)するたびにそのアイテムが再生成されることをすぐに見つけました。

つまり、C列をD列にコピーすることはできません。元の値は失われ、C列とD列の両方で新しい値が得られます。

No. Words   RNG 
15  ouch    0.53812335792605    0.043562592479011
8   hike    0.398881655918106   0.64370811632297
14  nose    0.201867181513088   0.755510523771107
3   cane    0.394920269465235   0.28416412724015
11  kilo    0.152969079524211   0.799996173130015
7   grass   0.902568202601681   0.663629657403564
10  joke    0.435628762542454   0.334338520877465
4   dark    0.096763206996108   0.886593020939989
12  long    0.385578268172482   0.379263717906069
1   alike   0.678912726335666   0.74399580956146
9   iron    0.838382502021304   0.609345470240727
6   fill    0.025112459308232   0.365339519963588
13  moan    0.321684809269134   0.92230175892848
2   bear    0.013301554887914   0.274360792567395
5   easy    0.308874453562179   0.640593438289194

個々の列に値を手動で入力することはできますが、実際にはRAND()によって生成されたことを証明できません。手動でコピーしたセルをクリックすると、式は数字自体ではなく数字自体です=RAND()。 RAND値が生成された後に固定されるように式を生成したり、RAND動作を変更したりするにはどうすればよいですか?

答え1

RAND()libreoffice calcドキュメントから:

RANDCalcが再計算されるたびに新しい乱数を生成する揮発性関数。これはRAND、データ▸計算▸再計算を選択するか、F9または入力イベントを押してセルが更新されると、Calcが返された値を更新することを意味します。

このRAND.NV機能を不揮発性等価機能として使用してください。

したがって、この機能を代わりに使用してください。

関連情報