如何组合数据集以创建唯一组合

如何组合数据集以创建唯一组合

首先,我没有编写 Excel 脚本的经验,只知道一些基本公式。我见过另一个问题在 SU 上,但我不确定这是否正是我所需要的,或者如何使其适应我的需要。

这是我正在尝试的:

我有一个包含 3 列 10 行的电子表格,每行都有唯一值。例如:

Column A
--------
White 
Black 
Blue 
etc (until 10 items)

Column B
--------
USA
Canada 
Mexico 
etc (until 10 items)

Column C
--------
English
French 
Spanish 
etc (until 10 items)

所以总共有 30 个元素。我想用这些元素创建一个新表3 列 1000 行,其中每行都有一个独特的组合这 3 个元素(因此 2 行永远不会有相同的 3 个元素)。为了澄清起见,列的顺序必须相同(A、B、C),当然一列的元素始终保留在该列中。

结果行的示例:

White | USA | English
White | USA | French
Black | USA | English
Black | Canada | English
... up to 1000 combinations

任何帮助,将不胜感激!

编辑

这个问题的重点是:1. 了解链接答案中提供的解决方案是否适用于我的情况 2. 知道是否有其他非脚本解决方法(公式、excel 工具等)

答案1

在下面的答案中,我假设您的初始数据位于单元格 A1:C10 中,并且没有标题。解决方案不使用脚本。仅使用 Excel 公式。

  1. =MOD((ROW()-1),10)+1在单元格中输入以下公式D1
  2. =MOD(INT((ROW()-1)/10),10)+1在单元格中输入E1
  3. =MOD(INT(INT((ROW()-1)/10)/10),10)+1在单元格中输入F1
  4. 选择单元格D1:F1并将其向下拖至第 1000 行,以D1:F1000用索引的唯一组合填充区域。
  5. =INDEX(A$1:A$10,D1)在单元格中输入G1
  6. 选择单元格G1并将其拖到单元格右侧I1
  7. 选择单元格G1:I1并将其向下拖动至第 1000 行,以G1:I1000使用初始数据的唯一组合填充区域

解释:

单元格 D1、E1 和 F1 中的公式计算当前行号中的百分位、十分位和个位数(行号调整为 -1)。这给出了一个唯一索引数组。函数 INDEX(range,row_num) 返回给定行号范围内的值。

相关内容