我正在尝试随机化 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()
C2-C16,它生成一个 0 到 1 之间的随机数,用于对列表进行洗牌。
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 列,但排序是根据旧值进行的。因此,当第三方查看时,列表似乎没有正确排序。我很快发现,每次我执行任何操作(例如更改字体、字体大小、颜色、复制、粘贴等)时,它们都会重新生成。
这意味着我不能简单地将 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 的文档:
RAND
是一个易失性函数,每次 Calc 重新计算时都会生成一个新的随机数。这意味着RAND
当通过选择数据 ▸ 计算 ▸ 重新计算或按 F9 或任何输入事件更新任何单元格时,Calc 将更新返回的值。使用该
RAND.NV
函数作为非易失性等效函数。
因此,请改用该函数。