在 excel 中创建随机大小的随机字符串列表
Create random list of strings in random size in excel
我的 excel 中有以下数据。
A
Text 1
Text 2
Text 3
Text 4
Text 5
Text 6
我想用来自列 A
的随机连接数据填充列 B
。它应该遵守标准 1> B > 6
。即,列 B
应该有来自列 A
的最小值 1,或者最多可以有 6 个由 ,
连接的唯一值。我可以将 B
列最多拖到 100 行。但是,他们仍然应该尊重标准。
我可以使用公式 INDEX($A:$A, RANDBETWEEN(1, ROWS($A:$A)), 1)
从列 A
中获取随机值,并使用公式
加入 2 个随机文本
=TEXTJOIN(",",true, INDEX($A:$A, RANDBETWEEN(1, ROWS($A:$A)), 1), INDEX($A:$A, RANDBETWEEN(1, ROWS($A:$A)), 1))
目前,我可以使用此公式获得 2 个固定字符串。我想知道是否有办法用随机数的唯一字符串(列 A 长度的最大大小与 ,
连接)来获取此连接字符串,而不是执行上述 6 次。
我使用随机函数只能得到 1 个值。请告诉我该怎么做。
你可以试试:
B1
中的公式:
=TEXTJOIN(",",,TAKE(SORTBY(A1:A6,RANDARRAY(COUNTA(A1:A6))),RANDBETWEEN(1,6)))
请注意,TAKE()
是一项仍处于测试阶段的新功能。如果您还没有访问权限,请尝试:
=TEXTJOIN(",",,INDEX(SORTBY(A1:A6,RANDARRAY(COUNTA(A1:A6))),SEQUENCE(RANDBETWEEN(1,6))))
在每个选项中:
SORTBY(A1:A6,RANDARRAY(COUNTA(A1:A6)))
- 将创建 A 列中值的随机数组;
RANDBETWEEN(1,6)
- 定义要连接的字符串的低位和 upper-limit 的部分;
TAKE/INDEX
- 一种从上述随机数组中检索 X 行数的方法。在你的情况下,X 本身是随机的(见第二条);
TEXTJOIN()
- 将所有选定值连接成一个字符串。
=TEXTJOIN(",", TRUE, INDEX(A:A, RANDARRAY(1, RANDBETWEEN(1, COUNTA(A:A)), 1, COUNTA(A:A), TRUE)))
EDIT 并没有完全击败 JvdV,但基本上与他的基础相似但没有使用 TAKE
并且没有对输出进行排序
此公式利用函数 RANDARRAY
和 RANDBETWEEN
获取随机数量的文本项进行连接。
首先,我创建了一个名为 AllTextItems
的动态命名范围。这会自动扩展以捕获数据集中任意数量的行:
然后,使用公式:
=TEXTJOIN(",",TRUE,INDEX(AllTextItems,RANDARRAY(RANDBETWEEN(1,ROWS(AllTextItems)),1,1,ROWS(AllTextItems),TRUE)))
在您想要加入列表的单元格中。
我的 excel 中有以下数据。
A
Text 1
Text 2
Text 3
Text 4
Text 5
Text 6
我想用来自列 A
的随机连接数据填充列 B
。它应该遵守标准 1> B > 6
。即,列 B
应该有来自列 A
的最小值 1,或者最多可以有 6 个由 ,
连接的唯一值。我可以将 B
列最多拖到 100 行。但是,他们仍然应该尊重标准。
我可以使用公式 INDEX($A:$A, RANDBETWEEN(1, ROWS($A:$A)), 1)
从列 A
中获取随机值,并使用公式
=TEXTJOIN(",",true, INDEX($A:$A, RANDBETWEEN(1, ROWS($A:$A)), 1), INDEX($A:$A, RANDBETWEEN(1, ROWS($A:$A)), 1))
目前,我可以使用此公式获得 2 个固定字符串。我想知道是否有办法用随机数的唯一字符串(列 A 长度的最大大小与 ,
连接)来获取此连接字符串,而不是执行上述 6 次。
我使用随机函数只能得到 1 个值。请告诉我该怎么做。
你可以试试:
B1
中的公式:
=TEXTJOIN(",",,TAKE(SORTBY(A1:A6,RANDARRAY(COUNTA(A1:A6))),RANDBETWEEN(1,6)))
请注意,TAKE()
是一项仍处于测试阶段的新功能。如果您还没有访问权限,请尝试:
=TEXTJOIN(",",,INDEX(SORTBY(A1:A6,RANDARRAY(COUNTA(A1:A6))),SEQUENCE(RANDBETWEEN(1,6))))
在每个选项中:
SORTBY(A1:A6,RANDARRAY(COUNTA(A1:A6)))
- 将创建 A 列中值的随机数组;RANDBETWEEN(1,6)
- 定义要连接的字符串的低位和 upper-limit 的部分;TAKE/INDEX
- 一种从上述随机数组中检索 X 行数的方法。在你的情况下,X 本身是随机的(见第二条);TEXTJOIN()
- 将所有选定值连接成一个字符串。
=TEXTJOIN(",", TRUE, INDEX(A:A, RANDARRAY(1, RANDBETWEEN(1, COUNTA(A:A)), 1, COUNTA(A:A), TRUE)))
EDIT 并没有完全击败 JvdV,但基本上与他的基础相似但没有使用 TAKE
并且没有对输出进行排序
此公式利用函数 RANDARRAY
和 RANDBETWEEN
获取随机数量的文本项进行连接。
首先,我创建了一个名为 AllTextItems
的动态命名范围。这会自动扩展以捕获数据集中任意数量的行:
然后,使用公式:
=TEXTJOIN(",",TRUE,INDEX(AllTextItems,RANDARRAY(RANDBETWEEN(1,ROWS(AllTextItems)),1,1,ROWS(AllTextItems),TRUE)))
在您想要加入列表的单元格中。