首页 > 解决方案 > 在 Google 表格中组合不同的列和单元格

问题描述

我正在尝试使用 Google 表格创建产品列表。每种类型的产品都有许多属性(或变体),它们组合在一起形成一个产品。

例如,有

特定产品是这些变化的特定组合。因此,例如:

我想要做的是仅使用属性创建许多列。所以直径列、长度列、材料列等。

然后我想通过将这些不同的列组合成所有可能的组合来创建一个新工作表。

这可能吗?如果是这样,怎么做?

谢谢。

注意:我目前不知道如何使用 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.

标签: google-sheetsgoogle-sheets-apigoogle-sheets-formulagoogle-sheets-querygoogle-sheets-macros

解决方案


您可以使用应用程序脚本创建它。转到工具 --> 脚本。为您的项目命名并删除您在脚本中看到的所有内容(函数 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);
}

然后点击脚本上方的小播放按钮。


推荐阅读