google-sheets - 在 Google 表格中组合不同的列和单元格
问题描述
我正在尝试使用 Google 表格创建产品列表。每种类型的产品都有许多属性(或变体),它们组合在一起形成一个产品。
例如,有
- 直径:1/4英寸、1/2英寸、3/4英寸等
- 长度:1/2英寸、1英寸、1 1/2英寸等
- 材质:钢、不锈钢
- 等等。
特定产品是这些变化的特定组合。因此,例如:
- 1/4 英寸 X 1/2 英寸钢制马车螺栓
- 1/4 英寸 X 1 英寸钢制马车螺栓
- 1/4 英寸 X 1 1/2 英寸钢制马车螺栓
- 等等。
我想要做的是仅使用属性创建许多列。所以直径列、长度列、材料列等。
然后我想通过将这些不同的列组合成所有可能的组合来创建一个新工作表。
这可能吗?如果是这样,怎么做?
谢谢。
注意:我目前不知道如何使用 Google Sheets API。如果需要,我可以学习(或聘请开发人员)。但是,如果可以在没有任何编码的情况下做到这一点,那将是可取的(至少现在是这样)。
澄清
这就是我的意思creating a number of columns just with the attributes
。
Column A . Column B . Column C
Diameter . Length . Material
1/4 . 1/2 . Steel
1/2 . 1 . Stainless Steel
3/4 . 1 1/2
1 . 2
Etc. Etc.
解决方案
您可以使用应用程序脚本创建它。转到工具 --> 脚本。为您的项目命名并删除您在脚本中看到的所有内容(函数 myFunction),然后将其替换为下面的代码。更改nessesery 范围和工作表名称。
function combinations() {
var ss = SpreadsheetApp.getActive();
var sheet = ss.getSheetByName('input'); //Choose your own input tab
var output = ss.getSheetByName('output'); //Choose your own output tab, and change it in script line 17
var rangeA = sheet.getRange('A1:A3').getValues(); //Change the desire range
var rangeB = sheet.getRange('B1:B3').getValues(); //Change the desire range
var rangeC = sheet.getRange('C1:C3').getValues(); //Change the desire range
var data = [];
for(var i=0; i < rangeA.length; i++){
for(var j=0; j < rangeB.length; j++){
for(var k=0; k < rangeC.length; k++)
data.push([rangeA[i]+" X "+rangeB[j]+" "+rangeC[k]]);
}
}
output.getRange(1, 1, data.length, 1).setValues(data);
}
然后点击脚本上方的小播放按钮。
推荐阅读
- python - Django 视图 app_view.views.GetHtmlView 没有返回 HttpResponse 对象。它返回 None 而不是
- javascript - 如何在可选引号之间提取字符串?
- c# - 将 JSON Highlight 查询转换为 elasticsearch
- flutter - Flutter 单击系统托盘上的通知导航到详细信息屏幕
- android - SocketException:操作系统错误:连接超时,errno = 110,地址 = 10.0.2.2,端口 = 40026
- bitbucket - Bitbucket PyPoetry 版本控制问题
- javascript - Props 原来在 Reactjs 中是未定义的
- terminal - 使用 tmux 无需两步命令
- c - 您如何确保链接器部分不会分配闪存
- java - 在String regex java中删除逗号后的空格