如何在Google表格中将行范围重复N次

Nimink0

基本上,我有N行,每个唯一值始终重复3次。这是col_1。然后,我要重复一系列值,因为col_1中有唯一的值。这是动态的,因为col_1是从列表自动生成的。

col_1 |        values
-------        ------
  a   |           d
  a   |           e
  a   |           f
  b   |
  b   |
  b   |
  c   |
  c   |
  c   |

所以这就是我要结束的事情:

col_1 |  col_2
----------------
  a   |    d
  a   |    e
  a   |    f
  b   |    d
  b   |    e
  b   |    f
  c   |    d
  c   |    e
  c   |    f

编辑:作为注释,我的数据是完全动态的,因此我对行数多少没有任何假设。在这里,我有一个[a,b,c]列表,乘以“值”中的项的次数一样多,因此[a,b,c]和[d,e,f]排成9行。如果我在[d,e,f]上加上“ g”,那么我将有12行,如果我在[a,b,c]上加上“ h”,我将有16行。动态部分是这里的重要部分。

Nimink0

所以我想回答我自己的问题,因为我花了太多时间寻找答案,却找不到答案,所以我自己一个人提出了答案。所以这是答案:

=ArrayFormula(TRANSPOSE(SPLIT(REPT(CONCATENATE(C2:C4&"~"),COUNTA(UNIQUE(A2:A500))),"~")))

您可以复制并更改它的工作范围,但让我解释一下它是如何工作的。

首先,我们将要重复的值与CONCATENATE合并为一个字符串。这三个值在C2:C4的范围内定义。

CONCATENATE(C2:C4&"~") → "d~e~f~"

〜在这里用作分隔符,因此这里没有任何特殊的技巧。接下来,我们重复这个字符串,直到col_1中有唯一值为止。为此,我们结合使用COUNTA,UNIQUE和REPT。

COUNTA(UNIQUE(A2:A500)) ← Count how many unique occurrences there are in a range ( 3 )

REPT(CONCATENATE(C2:C4&"~"),COUNTA(UNIQUE(A2:A500))

Basically this is converted into:
REPT("d~e~f~",3) → "d~e~f~d~e~f~d~e~f~"

现在,我们有任意数量的d,e和f。接下来,我们需要将它们变成单元格。我们将结合使用SPLIT和TRANSPOSE。

TRANSPOSE(SPLIT(REPT(CONCATENATE(C2:C4&"~"),COUNTA(UNIQUE(A2:A500))),"~"))

我们将字符串从“〜”中分离出来,因此最终得到一个看起来像[d,e,f,d,e,f,d,e,f]的数组。然后,我们需要对其进行转置以将其变成行而不是列。

最后一部分是将所有内容包装到arrayformula中,因此该公式确实起作用。

=ArrayFormula(TRANSPOSE(SPLIT(REPT(CONCATENATE(C2:C4&"~"),COUNTA(UNIQUE(A2:A500))),"~")))

现在,数组将如下所示:

col_1 |  col_2
----------------
  a   |    d
  a   |    e
  a   |    f
  b   |    d
  b   |    e
  b   |    f
  c   |    d
  c   |    e
  c   |    f

现在,每次向col_1添加新的唯一值时,都会添加三个新值

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在pandas DataFame中保持重复重复正好n次的重复行

如何阻止Google表格生成重复表格?

如何在Google SpreadSheet中将范围重复n次

如何在Google表格中使用可变范围?

如何在Google表格脚本中解析范围

如何在Google表格中将数字范围分组为数字范围类别

如何在Google表格中将矩形的单元格转换为单元格的行/列?

当n为Long时,如何在Kotlin中将字符串重复n次

如何在Google表格中使用动态范围填充VLOOKUP?

在Google表格中将特定范围插入MYSQL

如何在Google表格中将这些数据转换为importhtml

如何在Google表格中的importxml公式中定义范围

如何使Google表格搜索范围并返回“部分重复”的-all-行

如何在Google表格中将数据矩阵(x和null)转换为关系行?

如何在Google表格中将setValue仅用于过滤后的行范围(对于未隐藏的单元格,则使用getRange)?

如何重复表格中的行

如何在Google表格脚本编辑器中将数组写入范围列?

如何在Google Sheets Apps脚本中将范围复制到数组并删除数组重复项?

根据Google表格中的给定条件,重复N次行

在Google表格中重复每行N次

如何在Google表格图形中更改范围

如何在 Google 表格中的多个工作表中删除相同的行或范围?

如何重复行n次

重复行范围 n 次

Google 表格 - 从一个范围内重复值“n”次

如何在 Google 表格中查找和编辑重复项

如何在 Google 表格中找到第 n 个值的表格/范围中的单元格地址

如何在 SQL 中将年份范围拆分为年份行?

在 Google 表格中动态地重复 N 次列和行块