【问题标题】:Combining Different Columns & Cells in Google Sheets在 Google 表格中组合不同的列和单元格
【发布时间】:2019-08-18 05:23:16
【问题描述】:

我正在尝试使用 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.

【问题讨论】:

  • 我可以问你关于create a number of columns just with the attributes 的事吗?特别是,我无法理解create a number of columns。例如,如何创建diameterlengthMaterial 的下拉列表,并在选择后使用脚本创建新工作表?如果我误解了您的问题,我深表歉意。
  • 我澄清了我的问题。就creating a drop down list 而言,我希望生成所有组合。如果您需要进一步说明,请告诉我。谢谢。
  • 感谢您添加信息。根据您的附加信息,我认为下拉列表可用于您的情况。选择这些值后,我认为需要使用脚本,因为创建了新工作表。顺便问一下,您会使用 Google Apps Script 作为脚本吗?
  • stackoverflow.com/questions/54856963/… 不是在解决您的问题吗?如果没有,您能否分享一份包含预期结果的电子表格副本?
  • 谢谢 - 看起来很有希望。我去看看。

标签: google-sheets google-sheets-api google-sheets-formula google-sheets-query google-sheets-macros


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    相关资源
    最近更新 更多