如何从 Google SpreadSheet 中的 table 使范围重复 n 次

How to make a range repeat n-times from a table in Google SpreadSheet

我正在尝试在 google 工作表中执行以下操作,方法是重复名称范围内的某些单元格值以及应该迭代多少个单元格值,结果如下:单元格(重复次数)和迭代它水平直到行尾。
What i'm trying to do

如果我有这样的范围:

Business Communication                  | 2 
Business Intelligence & Data Analytics | 3
Communicative English | 1
Customer Relationship Management | 2

结果是这样的:
商务沟通
商务沟通
商业智能与数据分析
商业智能与数据分析
商业智能与数据分析
交际英语
客户关系管理
客户关系管理

我试过一些公式,

但我无法将它实现到我的解决方案中,我考虑过 arrayformula,但我不确定它是否可以解决我的问题,你是否知道如何仅使用本机公式来实现它(否javascript)?

你可以试试下面的公式:

=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY(
 REPT(A2:A&",", B2:B), ,999^99), ","))))

尝试

=ARRAY_CONSTRAIN(arrayformula(query(flatten(split(rept("|"&A2:A,B2:B),"|")),"select * where Col1 is not null")),SUM(B2:B),1)

相同的结果
=ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY( REPT(A2:A&"♥", B2:B), ,9^9), "♥"))))

说明

4 步

  • #1:核心是与=arrayformula(rept("♥"&A2:A5,B2:B5))拼接得到一个列表
  • #2:拆分该列表以获得矩阵 =arrayformula(split(rept("♥"&A2:A5,B2:B5),"♥"))
  • #3:要获得线性列表,应用展平 =arrayformula(flatten(arrayformula(split(rept("♥"&A2:A5,B2:B5),"♥"))))
  • #4:删除空格,你有两种方法,第一种是使用查询,我们将连接所有 headers =ARRAYFORMULA(TRIM(TRANSPOSE(SPLIT(QUERY( REPT(A2:A&"♥", B2:B), ,9^9), "♥")))),第二种更容易理解 =query(arrayformula(flatten(arrayformula(split(rept("♥"&A2:A5,B2:B5),"♥")))),"select * where Col1 is not null")

参考文献