【问题标题】:Is it possible to expand data in excel/googlesheets?是否可以在 excel/google 表格中扩展数据?
【发布时间】:2018-10-07 13:36:15
【问题描述】:

这是我正在尝试做的一个简化示例。

cat  2
dog  3

翻译为:

cat
cat
dog
dog
dog

这是否可能只使用单元格中的一个函数,还是我必须使用宏之类的东西?我该怎么做?

【问题讨论】:

  • 它是什么? Excel 或谷歌表格。它们各自的工作方式完全不同。
  • 这是谷歌表格。我的错误,我认为它们对于这个问题已经足够相似了。

标签: google-sheets


【解决方案1】:

在 Google 表格中,假设狗和猫在 A1 和 A2 中,而 2 和 3 在 B1 和 B2 中,则可以这样做:

=transpose(split(rept(A1&" ",B1)&rept(A2&" ",B2)," "))

【讨论】:

  • 我花了很长时间才弄清楚我的版本。在 Excel 上加倍或不加倍;)
【解决方案2】:

在 Google 表格中,假设“dog 2”和“cat 3”在 A1 和 A2 中,这样可以:

=transpose(QUERY({(split(rept(split(A1," ")&" ",query(split(A1," "), "SELECT Col2"))," ")),(split(rept(split(A2," ")&" ",query(split(A2," "), "SELECT Col2"))," "))},,))

学分:

G4mo 在 StackOverflow 中 How to make a range repeat n-times in Google SpreadSheet

【讨论】:

  • 这确实有效,尽管它比我标记为答案的另一个复杂一点。
  • @kschiek 指出。这是一个繁琐的公式,可以改进。但是 FWIW 它也假设了一个不同的起始位置,需要先拆分文本和数字,然后生成列表。 EdNelson 的回答令人赏心悦目,令人赏心悦目,在未来的某个日期,同时拥有这两种选择可能对其他人有用。
【解决方案3】:

在 Excel 中,您可以使用VLOOKUP()INDEX()MATCH() 的组合。

AB 列中的数据,在 C1 中输入 1,在 C2 中输入: p>

=C1+B1

并向下复制。在 D1 中输入:

=IF(ROWS($1:1)>SUM(B:B),"",INDEX(A:A,MATCH(ROWS($1:1),C:C,1)))

并向下复制:

辅助列 D 将列 B 中的重复因子转换为匹配索引。

(在数据的左侧放置一个辅助列将允许使用VLOOKUP()

【讨论】:

  • 这也有效,但比我标记为我的答案的答案更复杂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2018-08-16
  • 1970-01-01
  • 2010-12-21
相关资源
最近更新 更多