是整数还是连小数什么的都算上?如果是整数的话也就999个数里面随机挑800个,只要在A列按顺序填充1-999这些数字,然后在B列生成随机数:
=rand()
按照B列排序,A列随意的删除前面或者后面的199个数即可
如果是随即实数就用
=RAND()*998+1
随机整数:
=int(rand()*998)+1
在单元格中输入公式:=INT(RAND()*999+1),向下向右填充都行。
注意:RAND()返回大于等于 0 及小于 1 的均匀分布随机实数,每次计算工作表时都将返回一个新的随机实数。
excel有随机数函数,RAND()
可以生成0~1的随机数
236
593
702
268
575
577
990
931
250
810
770
408
630
494
499
134
969
178
589
681
110
651
738
780
432
83
500
60
413
119
146
315
604
275
416
470
64
458
437
945
273
174
506
344
513
397
260
68
641
365
546
881
423
594
381
58
145
760
265
139
43
692
844
517
800
983
525
69
625
330
279
683
402
384
206
876
152
609
549
729
124
325
8
783
921
300
226
953
189
417
363
979
579
527
898
32
792
719
244
942
467
724
232
603
551
462
649
766
66
158
101
52
957
347
890
481
849
133
964
834
823
996
239
663
626
970
421
57
878
163
249
608
529
918
547
959
764
405
756
574
445
46
39
366
631
180
434
157
59
804
710
252
790
870
271
463
913
923
884
572
422
819
727
895
154
774
666
914
833
777
776
474
565
165
312
468
894
866
965
503
984
447
779
309
79
879
861
809
768
924
51
825
228
53
903
987
263
540
343
213
202
130
605
586
857
89
201
634
461
286
307
974
791
806
356
585
661
583
840
316
436
856
897
240
37
137
669
842
210
620
607
943
383
348
40
407
251
554
45
814
377
147
733
221
211
323
424
741
824
573
769
294
71
624
502
688
353
633
161
906
370
815
164
34
747
295
514
4
665
976
94
999
175
966
695
885
128
151
270
324
901
701
831
87
818
812
104
76
623
193
298
247
313
956
734
428
460
411
707
376
387
237
70
822
333
420
993
699
491
340
153
905
511
788
615
346
962
371
304
219
893
114
622
757
328
538
793
429
544
72
835
20
656
954
120
385
493
900
170
653
223
47
911
670
14
955
446
288
750
854
256
868
858
596
190
944
259
18
322
600
379
642
742
711
185
246
199
909
272
257
771
758
389
156
571
121
465
566
17
952
55
852
81
720
912
54
598
875
830
826
581
508
431
977
142
672
496
988
853
173
664
276
395
98
618
108
673
310
88
933
149
716
320
778
382
584
522
475
587
327
865
159
242
177
524
961
394
693
329
49
674
998
380
872
781
464
126
245
995
16
287
317
477
763
74
687
936
650
435
926
713
166
773
568
277
238
698
187
816
660
99
456
9
531
612
863
281
613
545
636
150
301
726
253
951
927
730
459
908
36
728
78
67
799
480
682
438
331
841
466
448
671
997
38
610
495
989
751
899
847
326
512
886
487
29
972
443
685
184
655
50
486
472
992
6
567
668
212
374
873
453
591
118
949
254
578
214
308
48
621
372
935
732
341
248
934
284
705
482
321
220
217
338
485
552
27
162
602
991
938
889
950
452
821
628
132
3
306
679
215
439
369
360
973
299
264
235
523
582
179
813
451
469
334
208
112
125
836
680
230
595
658
929
509
390
489
892
975
403
492
744
888
332
457
564
743
516
255
647
638
832
335
123
358
399
225
82
305
33
194
222
192
629
505
167
24
227
191
182
718
354
696
896
85
84
73
296
15
455
580
441
767
234
803
269
311
282
919
80
646
476
746
160
704
851
862
845
643
102
35
406
794
576
90
364
640
65
910
967
637
759
362
444
837
95
657
784
562
519
127
433
361
968
557
440
601
850
543
77
30
373
534
63
859
418
171
2
755
678
62
97
753
131
789
691
61
617
537
229
662
985
19
775
535
278
752
659
765
761
207
204
941
473
958
490
654
518
632
745
904
267
129
116
994
947
289
198
176
928
291
218
483
484
860
498
337
639
243
739
948
352
115
56
676
801
401
592
808
107
561
172
902
797
471
817
31
694
737
103
414
772
569
28
708
351
864
449
195
644
41
388
536
925
216
135
887
795
829
982
606
690
915
846
667
22
874
106
616
530
412
314
350
717
319
712
559
677
877
336
144
'我做的函数是:
Sub Test()
Dim StartNo As Integer, EndNo As Integer
Dim MyRnd As Single
Dim Dic As Object, x As Integer
Set Dic = CreateObject("Scripting.Dictionary")
StartNo = 1
EndNo = 999
While x < 800
MyRnd = Int(Rnd * (Abs(StartNo - EndNo) + 1)) + IIf(StartNo >= EndNo, EndNo, StartNo)
If Not Dic.Exists(MyRnd) Then
Dic.Add MyRnd, ""
ActiveSheet.Range("A1").Offset(x, 0).Value = MyRnd
x = x + 1
End If
Wend
End Sub
你先用RAND()函数生产999个随机数,再用RANK函数将所产生的随机数排名,就不会重复了。如在B1中输入公式:=RANK(A1,$A$1:$A$999),copy至B800。B列就为不重复的1-999的随机数了。