找回密码
 立即注册
搜索
楼主: 素问生活

求助大佬:随机生成数字且随机排列

34
回复
2157
查看
[复制链接]

0

主题

4

帖子

-2

幻币

初入江湖

Rank: 1

积分
0
2021-10-18 12:10:07 显示全部楼层
弄好了,很强!能再请教下,如果26~29换其他、30~35换其他、3个26~29换成1个或2个,要怎么改吗?
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

10

帖子

0

幻币

初入江湖

Rank: 1

积分
10
2021-10-18 15:56:45 显示全部楼层
这种问题,换范围很容易,要改变指定范围的个数,不同的个数公式的改法都不一样,可以看成是组合排列问题,如果不懂这个原理很难改的下面在原有公式上稍微改动一下举列:
更改后的公式,选中一列10个单元格输入公式三键结束,如:A1:A10,
=
MOD(
  SMALL(
    IF({1;0},
    -1^RANDBETWEEN({9,9,9,9,9},99)*RANDBETWEEN({9,9,9,9,9},99),
    RANDBETWEEN({9,9,9,9,9},99)*{-1,0,0,0,1}+{0,1,2,3,0})
    /1%%
    +RANDBETWEEN({30,30,30,30,30;26,30,26,30,26}*10,{35,35,35,35,35;29,35,29,35,29}*10+9),
  ROW(1:10)),
1000)
/10
(注意:以下公式是错误的)
橙色部分用来更改范围,红色部分绿色底纹用来更改指定范围的个数。
下面将范围改为40-50,其中40-44占2个且不相邻:
=
MOD(
  SMALL(
    IF({1;0},
    RANDBETWEEN({9,9,9,9,9},99),
    RANDBETWEEN({9,9,9,9,9},99)*{1,0,1,0,1}+{1,1,1,2,1})
    /1%%
    +RANDBETWEEN({45,45,45,45,45;45,40,45,40,45}*10,{50,50,50,50,50;50,44,50,44,50}*10+9),
  ROW(1:10)),
1000)
/10
其中注意的一点,删掉了:-1^RANDBETWEEN({9,9,9,9,9},99)*
随机数.rar (10.54 KB, 下载次数: 53)
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

幻币

初入江湖

Rank: 1

积分
1
2021-10-19 05:34:36 显示全部楼层
RANDBETWEEN({9,9,9,9,9},99),
    RANDBETWEEN({9,9,9,9,9},99)*{1,0,1,0,1}+{1,1,1,2,1})
这部分是为了返回两行5列才这么写的。如果返回一列或者一行,不需要这么写两遍。
另外就是这个逻辑,应该是把两个数字固定排在第一和第二了吧?之前 -1那个数组是为了打乱顺序才加的
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

12

帖子

1

幻币

初入江湖

Rank: 1

积分
14
2021-10-23 20:27:31 显示全部楼层
其实这里之所以写成 {1,0,1,0,1},是因为在尝试理解你的公式思路后,参考排列后的结果写的。
也就是说两个0之间用一个1隔开,比较直观
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

幻币

初入江湖

Rank: 1

积分
5
2021-10-30 01:06:08 显示全部楼层
我没看附件,只看公式,这样写是不行的。两个特殊的数字固定排在一起了。位置固定是第一个第二个没有隔开,也没乱序
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

幻币

初入江湖

Rank: 1

积分
0
2021-10-30 08:10:37 显示全部楼层
谢谢提醒,确实如你所言,两个特珠数字确实在一起了
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

幻币

初入江湖

Rank: 1

积分
4
2021-11-2 07:43:56 显示全部楼层
这样写应该没有问题了
=
MOD(
  SMALL(
    IF({1;0},
    -1^RANDBETWEEN({9,9,9,9,9},99)*RANDBETWEEN({9,9,9,9,9},99),
    RANDBETWEEN({9,9,9,9,9},99)*{1,1,0,0,1}+{0,0,-1,-1,0})
    /1%%
    +RANDBETWEEN({45,45,45,45,45;45,45,45,40,40}*10,{50,50,50,50,50;50,50,50,44,44}*10+9),
  ROW(1:10)),
1000)
/10
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

10

帖子

1

幻币

初入江湖

Rank: 1

积分
6
2021-11-5 16:06:55 显示全部楼层
VBA更好处理
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

幻币

初入江湖

Rank: 1

积分
0
2021-11-9 11:47:05 显示全部楼层
有大神吗
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

幻币

初入江湖

Rank: 1

积分
7
2021-11-10 10:53:22 显示全部楼层
有大神吗
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册