在 Google 表格中重复每行 N 次

Wes*_*ter 3 google-sheets google-sheets-formula

我有一列包含 3 行,我希望能够将这些行每行重复 5 次。

例子

| Name |
|------|
| Dog  |
| Cat  |
| Ball |
|------|
Run Code Online (Sandbox Code Playgroud)

期望输出

| Output |
|--------|
| Dog    |
| Dog    |
| Dog    |
| Dog    |
| Dog    |
| Cat    |
| Cat    |
| Cat    |
| Cat    |
| Cat    |
| Ball   |
| Ball   |
| Ball   |
| Ball   |
| Ball   |
|--------|
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

=TRANSPOSE(split(rept(join(";",A:A)&";",5),";"))
Run Code Online (Sandbox Code Playgroud)

我的尝试产生:

| Output |
|--------|
| Dog    |
| Cat    |
| Ball   |
| Dog    |
| Cat    |
| Ball   |
| Dog    |
| Cat    |
| Ball   |
| Dog    |
| Cat    |
| Ball   |
| Dog    |
| Cat    |
| Ball   |
|--------|
Run Code Online (Sandbox Code Playgroud)

The*_*ter 15

无需拆分和连接以及其他字符串操作,

=ARRAYFORMULA(FLATTEN(IF(SEQUENCE(ROWS(A2:A4),5),A2:A4)))
Run Code Online (Sandbox Code Playgroud)
  • A2:A4重复范围
  • 5重复次数
  • SEQUENCE创建一个二维数字数组
  • IF将一维数组转置A2:A4为大小等于SEQUENCE创建的数组的二维数组
  • FLATTEN2D 到 1D 数组。
A1 姓名
A2
A3
A4
输出

  • 这是最好的解决方案。显然,其他投票者都忽略了这一点。 (2认同)

pla*_*er0 5

=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY(
 REPT(A1:A3&"?", 5), ,999^99), "?"))))
Run Code Online (Sandbox Code Playgroud)

0


=SORT(TRIM(TRANSPOSE(SPLIT(QUERY(ARRAYFORMULA(
 REPT(A1:A3&"?", 5)), ,999^99), "?"))), 1, 0)
Run Code Online (Sandbox Code Playgroud)

0

  • @WesFoster 注意 JOIN 限制为 50000 个字符 (2认同)