随机化Google表格中的单元格

时间:2017-08-13 10:39:30

标签: google-sheets

是否有一个公式来随机化一列数据,使每个项目只保留一次(具有相同的项目)?

所以:

APPLES 
PEARS
BERRIES

可能会出现

PEARS
BERRIES
APPLES
公式之间的Rand并不好,因为你可能得到两个'PEAR'。

2 个答案:

答案 0 :(得分:1)

有一个新的"随机范围"选择范围后,在上下文菜单中可用的功能:

randomize]

以下方法实现了pnuts的概念,但没有创建一个填充随机数的列:

=query({A2:A20, arrayformula(randbetween(0, 1e20 + row(A2:A20)))}, "select Col1 order by Col2", 0)

这里A2:A20是要置换的范围。 arrayformula为每个生成一个随机整数。 query按随机整数对数组进行排序,但不会将随机数放在电子表格中。

randbetween的熵是64位,因此碰撞极不可能。即使两个随机数恰好相等,也不会产生重复; 排序任何列都不会这样做。它只表示相应的条目对将按原始顺序出现。

答案 1 :(得分:0)

在找到此帖子之前,我对user6655984采用了类似的方法。

RANDARRAY似乎是一个很好的解决方案。

我有类似的要求。基于公式的随机退货单,只有异想天开才拥有唯一记录的能力。

右键单击以随机化范围,这意味着我不需要用户交互,并且数据是动态的。

我将随机数内置到查询数据范围中。

我获得了查询的灵活性(可以轻松扩展范围,添加返回的列过滤条件等),我完全不必显示随机数,并且可以根据需要将其包装为UNIQUE,然后使用每次重新计算。

在A2:A列中有一些数据。

查看内联数据范围。 = {RANDARRAY(ROWS($ A $ 2:$ A)),$ A $ 2:$ A}

查询(包括重复项),过滤为空。 = QUERY({RANDARRAY(ROWS($ A $ 2:$ A)),$ A $ 2:$ A},“ SELECT Col2 WHERE COL2 <>” ORDER BY Col1“,0)

相同,但被唯一包裹。 = UNIQUE(QUERY({RANDARRAY(ROWS($ A $ 2:$ A)),$ A $ 2:$ A},“ SELECT Col2 WHERE COL2 <>” ORDER BY Col1“,0))

希望它对某人有帮助,即使几年后也是如此。 :)

马特