【问题标题】:How to repeat cell value X times in google sheet using arrayformula?如何使用arrayformula在谷歌表格中重复单元格值X次?
【发布时间】:2021-06-28 15:09:20
【问题描述】:

大家好,

我想将单元格A3:A5 中的文本重复XX = value in cell B3:B5。输出应从单元格A8 开始。上面屏幕截图中的单元格A8:A21 是预期的输出。我可以知道我应该如何使用ARRAYFORMULA 来实现这一点吗?任何帮助将不胜感激!

【问题讨论】:

  • 我试图使用REPT,但在一个单元格中水平输出,尽管我用TRANSPOSE包装公式
  • 小心你不是在描述一个xyproblem。当人们提出这个要求时,他们通常会尝试将以水平方式布局的数据重新配置为更垂直的数据。有很多更好的方法可以一次性完成,但您需要描述和展示整个问题。 mywiki.wooledge.org/XyProblem

标签: google-sheets array-formulas


【解决方案1】:

把这个公式放在A8中:

=ArrayFormula(QUERY(FLATTEN(SPLIT(REPT(A3:A5&"|",B3:B5),"|",1,1)),"Select * WHERE Col1 Is Not Null"))

REPT 将重复 A3:A5 中的每个值,并附加一个竖线符号 (“|”),但是很多次都在相应的单元格 B3:B5 中。因此,如果 A3 是“练习 1”而 B3 是 3,REPT 将为该行生成 Exercise 1|Exercise 1|Exercise 1,等等。

SPLIT 然后将在“|”处拆分每个字符串符号。

FLATTEN 将构成上述所有内容的一列。

QUERY 将消除列表中的任何 null(即“空白”)结果,从而只留下非 null 值。

【讨论】:

  • 谢谢埃里克!我可以知道将参数1,1 放在SPLIT 函数的原因是什么吗?
  • 每个1的参数都与TRUE相同。第一个参数是“按此符号的每个实例拆分?”在这种情况下,它可能是 1 或 0,因为结果是一样的;但是您必须包含第一个参数才能获得第二个参数,这是重要的一个。第二个参数是“忽略可能由 SPLIT 引起的空单元格?”我们确实希望省略空值。从技术上讲,如果我们省略了“1, 1”,QUERY 就会删除空值。但我喜欢让每件作品在其自身中充分发挥作用。
猜你喜欢
  • 2020-11-07
  • 2014-12-18
  • 2022-08-21
  • 2016-05-06
  • 2021-11-01
  • 2021-09-22
  • 2021-03-29
  • 2017-11-12
  • 2014-06-03
相关资源
最近更新 更多