从其他行的组合创建行
Create rows from combination of other rows
我正在寻找一种基于两个不同表格重复 records/rows 的方法,如下所示:
TABLE 1:
Col1 Col2
A 101
B 102
C 103
TABLE 2:
Col3
1
2
3
重复结果:
Col1 Col2 Col3
A 101 1
B 102 1
C 103 1
A 101 2
B 102 2
C 103 2
A 101 3
B 102 3
C 103 3
在 'Microsoft Access' 或 SQL 中,我可以通过使用 SQL select string:
非常快速地完成
SELECT table1.column1, table2.column1
FROM table1, table2
但我想知道是否有任何方法可以在 google 带有 QUERY 功能等的工作表中做到这一点
看看这是否有效
=ArrayFormula(sort(split(transpose(split(textjoin(",", 1, split(textjoin(",", 1, A2:A4&"_"&transpose(B2:B4)),",")&"_"&A10:A12), ",")), "_")))
更改范围以适应。
您可以通过在 Google Apps 脚本中创建的 custom function 来完成此操作。为此,请按照下列步骤操作:
- 在您的电子表格中,select工具 > 脚本编辑器 打开绑定到您的文件的脚本。
- 在脚本编辑器中复制此函数,并保存项目:
function REPEAT(table1, table2) {
var output = [];
output.push([]);
for (var i = 0; i < table1[0].length; i++) {
output[0].push(table1[0][i]);
}
for (var i = 0; i < table2[0].length; i++) {
output[0].push(table2[0][i]);
}
for (var i = 1; i < table2.length; i++) {
for (var j = 1; j < table1.length; j++) {
output.push([]);
for (var k = 0; k < table1[j].length; k++) {
output[output.length - 1].push(table1[j][k]);
}
for (var k = 0; k < table2[i].length; k++) {
output[output.length - 1].push(table2[i][k]);
}
}
}
return output;
}
- 现在,如果您返回电子表格,就可以像使用任何其他函数一样使用此函数。您只需提供适当的 table 范围作为参数,如您在此处所见:
希望对您有所帮助。
我正在寻找一种基于两个不同表格重复 records/rows 的方法,如下所示:
TABLE 1:
Col1 Col2
A 101
B 102
C 103
TABLE 2:
Col3
1
2
3
重复结果:
Col1 Col2 Col3
A 101 1
B 102 1
C 103 1
A 101 2
B 102 2
C 103 2
A 101 3
B 102 3
C 103 3
在 'Microsoft Access' 或 SQL 中,我可以通过使用 SQL select string:
非常快速地完成SELECT table1.column1, table2.column1
FROM table1, table2
但我想知道是否有任何方法可以在 google 带有 QUERY 功能等的工作表中做到这一点
看看这是否有效
=ArrayFormula(sort(split(transpose(split(textjoin(",", 1, split(textjoin(",", 1, A2:A4&"_"&transpose(B2:B4)),",")&"_"&A10:A12), ",")), "_")))
更改范围以适应。
您可以通过在 Google Apps 脚本中创建的 custom function 来完成此操作。为此,请按照下列步骤操作:
- 在您的电子表格中,select工具 > 脚本编辑器 打开绑定到您的文件的脚本。
- 在脚本编辑器中复制此函数,并保存项目:
function REPEAT(table1, table2) {
var output = [];
output.push([]);
for (var i = 0; i < table1[0].length; i++) {
output[0].push(table1[0][i]);
}
for (var i = 0; i < table2[0].length; i++) {
output[0].push(table2[0][i]);
}
for (var i = 1; i < table2.length; i++) {
for (var j = 1; j < table1.length; j++) {
output.push([]);
for (var k = 0; k < table1[j].length; k++) {
output[output.length - 1].push(table1[j][k]);
}
for (var k = 0; k < table2[i].length; k++) {
output[output.length - 1].push(table2[i][k]);
}
}
}
return output;
}
- 现在,如果您返回电子表格,就可以像使用任何其他函数一样使用此函数。您只需提供适当的 table 范围作为参数,如您在此处所见:
希望对您有所帮助。