随机构建一个字符串,不重复

随机构建一个字符串,不重复

我似乎找不到办法做到这一点。我在 excel 中有五个单元格。我想将它们随机连接成一个字符串。我想在构建的字符串中使用每个单元格字符一次,这样我最终会得到一个五个字符的字符串,没有重复。假设我有 A1 = Y、B1 = u、C1 = 6、D1 = %、E1 = z 我想构建一个字符串,其中每个字符都按随机顺序排列,uY6%z 或 zY%u6 都可以接受(等等)

有没有办法做到这一点?

答案1

您可以执行费舍尔-耶茨改组在 VB 应用程序中(VBA),例如使用显示的算法实现这里

请务必使用一个好的随机数生成器,如果需要的话,最好是一个加密安全的生成器。Randomize仅由系统时间播种,所以我不会用它来抽奖。

答案2

这看起来描述了你想要的东西?

https://www.extendoffice.com/documents/excel/2484-excel-random-number-no-duplicates-no-repeat.html

一旦获得了不重复的数字列表,您就可以使用它通过 CONCATENATE() 将 INDEX() 插入到您的值中。

相关内容