【问题标题】:Transform an array with offset and arrayformula使用偏移量和数组公式转换数组
【发布时间】:2023-03-19 09:20:01
【问题描述】:

我从谷歌表单中获取值,在一行中,两种类型的数据交替出现 5 次。像那样 : TypeA|TypeB|TypeA|TypeB|TypeA|TypeB|TypeA|TypeB|TypeA|TypeB

我想在另一张纸上将其转换为具有两列的数组:

TypeA|TypeB
TypeA|TypeB
TypeA|TypeB
TypeA|TypeB

我设法用这个公式做到了: =offset(DataSheet!$B$2,FLOOR((row()-2)/5),mod(row()-2,5)*2)

我想把它放在一个数组公式中,以避免每次提交表单时都拖动公式。我试过了:=arrayformula(offset(DataSheet!$B$2,FLOOR((row(B2:B)-2)/5),mod(row(B2:B)-2,5)*2)) 这适用于第一行,但不会按预期/希望扩展到下一行。

我错过了什么?

这是一个示例表:https://docs.google.com/spreadsheets/d/1nyN-V0ZjBsRU7-7I97lnLUQCsLpO8f27UlXtgoLa1j8?usp=sharing

【问题讨论】:

  • 分享您的工作表副本

标签: google-sheets


【解决方案1】:

你可以这样做:

=QUERY({DataSheet!B2:C; DataSheet!D2:E; DataSheet!F2:G; DataSheet!H2:I; DataSheet!J2:K},
 "where Col1 is not null", 0)


或者像这样:

={FLATTEN(FILTER(DataSheet!B2:K, MOD(COLUMN(DataSheet!B:K), 2)=0)),
  FLATTEN(FILTER(DataSheet!B2:K, MOD(COLUMN(DataSheet!B:K)-1, 2)=0))}

【讨论】:

    猜你喜欢
    • 2018-12-31
    • 2015-11-20
    • 2020-07-15
    • 2019-04-04
    • 2021-12-20
    • 1970-01-01
    • 2021-12-20
    • 2015-10-31
    • 1970-01-01
    相关资源
    最近更新 更多