分享

Excel公式练习25:生成在1至10之间且没有重复值的随机数

 zhangshoupen 2017-12-25

 

本次的练习是:使用公式生成位于两个值之间且没有重复值的随机数。如下图1所示,生成在110之间且没有重复值的随机数。

 1

 

先不看答案,自已动手试一试。



 

公式


在单元格B3中的数组公式:

=SMALL(IF(COUNTIF(B$2:B2,ROW($1:$10))<>1,ROW($1:$10)),1+INT(RAND()*(10-ROW()+ROW(B$3))))

拖至单元格B12

 

公式解析


下图2展示了公式中SMALL函数的第一个参数IF(COUNTIF())部分的运算过程。

 2

单元格区域E4:E13中呈现的是ROW($1:$10)的结果,即数字110

COUNTIF函数统计列E中的数字在B3:B7中出现的次数并在F4:F13中放置统计的结果。

然后将列F中的结果与1比较,看是否等于1,在G4:G13中放置比较后的结果。

如果列G中的值是TRUE,表明列E中相应单元格的数值还没有被使用,将其放置到列H中,否则写入FALSE。列H中的结果即为还没有被使用的数字。

 

作为SMALL函数第二个参数的公式:

1+INT(RAND()*(10-ROW()+ROW(B$3)))

根据公式单元格所在的行,生成一个数字,该数字小于等于还没有被使用过的数字数。例如,如果公式所在的单元格为B9,那么将生成14之间的一个整数作为SMALL函数的参数,提取剩下没有被使用的数字中的数。

 

小结

  • SMALL函数忽略参数中的任何非数字的数据。

  • 公式创建了一组没有使用过的数字,然后选取这些数字中的一个作为随机数。

  • ROW函数中的参数进行改变,生成所需区间的随机数。


下期预告:

Excel公式练习26:比较两列的值并提取不相同的数据

如下图所示,要提取列C中西区超市有而列A中东区超市没有的水果,如何编写公式呢?

 



 

本文属原创文章,转载请注明出处。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多