在 Google 张中将每一行重复 N 次
Repeat each row N times in Google Sheets
我有一列包含 3 行,我希望能够将这些行每行重复 5 次。
例子
| Name |
|------|
| Dog |
| Cat |
| Ball |
|------|
期望输出
| Output |
|--------|
| Dog |
| Dog |
| Dog |
| Dog |
| Dog |
| Cat |
| Cat |
| Cat |
| Cat |
| Cat |
| Ball |
| Ball |
| Ball |
| Ball |
| Ball |
|--------|
这是我尝试过的方法:
=TRANSPOSE(split(rept(join(";",A:A)&";",5),";"))
我的尝试产生:
| Output |
|--------|
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
|--------|
=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY(
REPT(A1:A3&"♠", 5), ,999^99), "♠"))))
=SORT(TRIM(TRANSPOSE(SPLIT(QUERY(ARRAYFORMULA(
REPT(A1:A3&"♠", 5)), ,999^99), "♠"))), 1, 0)
=transpose(split(join("~",ArrayFormula(rept({Balls}&"~",3))),"~"))
其中:
Range
是要重复的文本范围
Reps
是重复次数
请注意,如果您的文本包含 ~,请将 "~"
的所有实例更改为另一个字符
还有一个技巧。
A1:A3
狗、猫、球在我的例子中重复了 4 次。
=ARRAYFORMULA( FLATTEN(A1:A3 & SPLIT(REPT(" |",4),"|")))
没有拆分和连接以及其他字符串操作,
=ARRAYFORMULA(FLATTEN(IF(SEQUENCE(ROWS(A2:A4),5),A2:A4)))
A2:A4
重复范围
5
重复次数
SEQUENCE
创建二维数组
IF
将一维数组 A2:A4
转置为二维数组,其大小等于创建的 SEQUENCE
数组
FLATTEN
二维到一维数组。
A1
Name
A2
Dog
A3
Cat
A4
Ball
Output
Dog
Dog
Dog
Dog
Dog
Cat
Cat
Cat
Cat
Cat
Ball
Ball
Ball
Ball
Ball
我有一列包含 3 行,我希望能够将这些行每行重复 5 次。
例子
| Name |
|------|
| Dog |
| Cat |
| Ball |
|------|
期望输出
| Output |
|--------|
| Dog |
| Dog |
| Dog |
| Dog |
| Dog |
| Cat |
| Cat |
| Cat |
| Cat |
| Cat |
| Ball |
| Ball |
| Ball |
| Ball |
| Ball |
|--------|
这是我尝试过的方法:
=TRANSPOSE(split(rept(join(";",A:A)&";",5),";"))
我的尝试产生:
| Output |
|--------|
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
| Dog |
| Cat |
| Ball |
|--------|
=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY(
REPT(A1:A3&"♠", 5), ,999^99), "♠"))))
=SORT(TRIM(TRANSPOSE(SPLIT(QUERY(ARRAYFORMULA(
REPT(A1:A3&"♠", 5)), ,999^99), "♠"))), 1, 0)
=transpose(split(join("~",ArrayFormula(rept({Balls}&"~",3))),"~"))
其中:
Range
是要重复的文本范围Reps
是重复次数
请注意,如果您的文本包含 ~,请将 "~"
的所有实例更改为另一个字符
还有一个技巧。
A1:A3
狗、猫、球在我的例子中重复了 4 次。
=ARRAYFORMULA( FLATTEN(A1:A3 & SPLIT(REPT(" |",4),"|")))
没有拆分和连接以及其他字符串操作,
=ARRAYFORMULA(FLATTEN(IF(SEQUENCE(ROWS(A2:A4),5),A2:A4)))
A2:A4
重复范围5
重复次数SEQUENCE
创建二维数组IF
将一维数组A2:A4
转置为二维数组,其大小等于创建的SEQUENCE
数组FLATTEN
二维到一维数组。
A1 | Name |
---|---|
A2 | Dog |
A3 | Cat |
A4 | Ball |
Output |
---|
Dog |
Dog |
Dog |
Dog |
Dog |
Cat |
Cat |
Cat |
Cat |
Cat |
Ball |
Ball |
Ball |
Ball |
Ball |