随机生成50到99的数字(随机生成0-9不重复数字)

网上有一公式可以随机生成0-9的不重复数字,如下:

=SMALL(IF(COUNTIF($D11:D11,{0;1;2;3;4;5;6;7;8;9})=0,{0;1;2;3;4;5;6;7;8;9}),INT(RAND()*(10-COLUMN(A1))) 1)

但仔细观察,此公式存在弊端,见下面gif图演示:

随机生成50到99的数字(随机生成0-9不重复数字)(1)

就是最后一个数字必定是9。

为此,现在用其他思路来实现这个目标。

首先介绍一个自定义函数:newtext

该函数并非本人所写,而是ehome上某版主N年前所写。

作用是批量删除某个字符串中的多个字符。

随机生成50到99的数字(随机生成0-9不重复数字)(2)

第一个数字的函数公式为:=INT(RAND()*10)

随机生成50到99的数字(随机生成0-9不重复数字)(3)

第二个数字起函数公式为:

=MID(newtext("0123456789",$E$10:E10),INT(RAND()*(10-COLUMN(A1))) 1,1)

其中newtext函数是将出现过的数字从字符串"0123456789"中删除,如下图中删除第一个数字8.

随机生成50到99的数字(随机生成0-9不重复数字)(4)

删除数字之后再用mid函数随机提取数字,然后第三个数字则像第二个数字这样处理,字符串"0123456789"随机删除两个数字,剩下8个,然后在这8个数字中随机挑一个出来。

随机生成50到99的数字(随机生成0-9不重复数字)(5)

其他数字亦然。

结果见下面的gif演示:

随机生成50到99的数字(随机生成0-9不重复数字)(6)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页