两个范围内的独特组合

时间:2015-07-28 22:02:09

标签: google-sheets

我有一个单列范围(让我们称之为range1),如下所示:

ABC
DEF
GEH

我还有另一个名为range2的单列范围:

123
456
789

我想要一个输出以下两列范围的函数:

ABC | 123
ABC | 456
ABC | 789
DEF | 123
DEF | 456
DEF | 789
GEH | 123
GEH | 456
GEH | 789

我当前的解决方案

我有以下脚本:

function categorize_and_collate(range1, range2) {
  output = []
  for (i = 0; i < range1.length; i++) {
    for (j = 0; j < range2.length; j++) {
      if (range1[i] != "" && range2[j] != "") {
        output.push([String(range1[i]), String(range2[j])])
      }
    }
  }

  return output
}

如果我们假设range1A1:A3range2B1:B3,则以下内容为:

=categorize_and_collate("A1:A3", "B1:B3")

......输出我期待:

ABC | 123
ABC | 456
ABC | 789
DEF | 123
DEF | 456
DEF | 789
GEH | 123
GEH | 456
GEH | 789

最好的部分:如果我向任一列添加任意数量的行,此功能仍然有效。

  • 是否有基于非脚本的方法来实现此目的?
  • 如果脚本是唯一可行的方法,这是实现此目的的最佳方法吗?

1 个答案:

答案 0 :(得分:0)

根据Google Spreadsheet Documentation ...没有。但你可以计算出所有这些方法!这意味着是的,脚本是唯一的方法。

由于您只需要组合两列,因此只有两个for循环。你有哪些。所以是的,你的脚本就像它获得的一样简单。干得好!