自动 table 填充指定数字及其出现次数
Automatic table filling with specified numbers and their number of occurence
我很难找到如何强制 Google 电子表格生成满足特定条件的一行数字。
例如:
我有一个包含 50 行的列 "A"。现在我需要用一组数字填充这些行(或单元格,因为它只是一列):
- “1”- 出现 15 次
- “2”- 出现 10 次
- “3”- 出现 20 次
- “4”- 出现 5 次
出现的次数是在我的列之外的另一个单元格中手动输入的。修改出现次数会自动更改 A1-A50 范围内数字的分布。
数字不必排序,可以随机分布(更好!)。
我想在 "A1" 中放置一个公式,在下面的另外 50 个单元格中生成数字。也许 ARRAYFORMULA 会以某种方式起作用。任何人都可以提供建议吗?
这是根据频率列表生成一组数字的一种方法:
=ArrayFormula(vlookup(row(indirect("a1:a"&sum(D:D)))-1,{sumif(row(C:C),"<="&row(C:C),D:D)-D:D,C:C},2))
那么如果你想随机化它们:
=ArrayFormula(sort(vlookup(row(indirect("a1:a"&sum(D:D)))-1,{sumif(row(C:C),"<="&row(C:C),D:D)-D:D,C:C},2),randarray(sum(D:D)),1))
编辑
我本可以通过使用 Sequence 而不是 row() 并将 Sumif 中的条件更改为“<”来使它更整洁:
=ArrayFormula(vlookup(sequence(sum(D:D),1,0),{sumif(row(C:C),"<"&row(C:C),D:D),C:C},2))
和
=ArrayFormula(sort(vlookup(sequence(sum(D:D),1,0),{sumif(row(C:C),"<"&row(C:C),D:D),C:C},2),randarray(sum(D:D)),1))
我很难找到如何强制 Google 电子表格生成满足特定条件的一行数字。
例如:
我有一个包含 50 行的列 "A"。现在我需要用一组数字填充这些行(或单元格,因为它只是一列):
- “1”- 出现 15 次
- “2”- 出现 10 次
- “3”- 出现 20 次
- “4”- 出现 5 次
出现的次数是在我的列之外的另一个单元格中手动输入的。修改出现次数会自动更改 A1-A50 范围内数字的分布。
数字不必排序,可以随机分布(更好!)。
我想在 "A1" 中放置一个公式,在下面的另外 50 个单元格中生成数字。也许 ARRAYFORMULA 会以某种方式起作用。任何人都可以提供建议吗?
这是根据频率列表生成一组数字的一种方法:
=ArrayFormula(vlookup(row(indirect("a1:a"&sum(D:D)))-1,{sumif(row(C:C),"<="&row(C:C),D:D)-D:D,C:C},2))
那么如果你想随机化它们:
=ArrayFormula(sort(vlookup(row(indirect("a1:a"&sum(D:D)))-1,{sumif(row(C:C),"<="&row(C:C),D:D)-D:D,C:C},2),randarray(sum(D:D)),1))
编辑
我本可以通过使用 Sequence 而不是 row() 并将 Sumif 中的条件更改为“<”来使它更整洁:
=ArrayFormula(vlookup(sequence(sum(D:D),1,0),{sumif(row(C:C),"<"&row(C:C),D:D),C:C},2))
和
=ArrayFormula(sort(vlookup(sequence(sum(D:D),1,0),{sumif(row(C:C),"<"&row(C:C),D:D),C:C},2),randarray(sum(D:D)),1))