首先,我没有编写 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 公式。
=MOD((ROW()-1),10)+1
在单元格中输入以下公式D1
=MOD(INT((ROW()-1)/10),10)+1
在单元格中输入E1
=MOD(INT(INT((ROW()-1)/10)/10),10)+1
在单元格中输入F1
- 选择单元格
D1:F1
并将其向下拖至第 1000 行,以D1:F1000
用索引的唯一组合填充区域。 =INDEX(A$1:A$10,D1)
在单元格中输入G1
- 选择单元格
G1
并将其拖到单元格右侧I1
- 选择单元格
G1:I1
并将其向下拖动至第 1000 行,以G1:I1000
使用初始数据的唯一组合填充区域
解释:
单元格 D1、E1 和 F1 中的公式计算当前行号中的百分位、十分位和个位数(行号调整为 -1)。这给出了一个唯一索引数组。函数 INDEX(range,row_num) 返回给定行号范围内的值。