将 QUERY 结果的 GROUPS 组转置为单列

Posted

技术标签:

【中文标题】将 QUERY 结果的 GROUPS 组转置为单列【英文标题】:Transpose GROUPS of QUERY results to single column 【发布时间】:2020-01-05 03:41:59 【问题描述】:

我在TRANSPOSE'ing 我的QUERY 结果时遇到了困难。结果以五个为一组,并且已经从行到列转置一次。现在每个结果都在 5 行的列中,我想将 那些 结果合并到一个列中,最好在每个组之间留一个空格。

这是我目前得到的:

这就是我想要实现的目标:

Here is the link to my sheet

【问题讨论】:

如果没有google-sheet-script,我认为它是可能的 【参考方案1】:

在弄清楚你在样品表上的目标之后,我想出了这个公式。它比通常情况下这样的重制要复杂一些,因为您希望它仅限于小队选项卡中的前 5 名球员。

=ARRAYFORMULA(SUBSTITUTE(QUERY(VLOOKUP(SEQUENCE(COUNTA('Squad Compositions'!B4:B)*6,1,0)/6+4,ROW('Squad Compositions'!B4:B), '小队组成'!B4:B,ARRAY_CONSTRAIN(IFERROR(SPLIT(TRANSPOSE(TRIM(QUERY(TRANSPOSE(IF('小队组成'!E4:S="",,'小队组成'!E4:S&CHAR(10))) ),,15))),CHAR(10)&" ",0)),9^99,5),IF(ROW('Squad Compositions'!B4:B),"|"),MOD(SEQUENCE (COUNTA('Squad Compositions'!B4:B)6,1,0),6)0,1+2,3),"其中 Col2 不为空"), "|",""))

希望这会有所帮助。

【讨论】:

【参考方案2】:

这里是公式,在 B10 中:

= arrayformula(
     transpose
      ( split(join(rept(",",6),
        filter('Squad Compositions'!B4:B,'Squad Compositions'!B4:B<>"")) 
        ,",",true,false)
      ),(
       transpose(split(substitute(textjoin( "%",false,
         filter ('Squad Compositions'!E4:I,'Squad Compositions'!B4:B<>""),
          left(filter('Squad Compositions'!E4:E&"",'Squad Compositions'!B4:B<>""),0)
         )& "$","%$",""),"%",true,false))
      )
    
  )

【讨论】:

脱帽致敬!太棒了! 非常感谢您提供的公式!在到达带有逗号的单元格/团队名称之前,它工作得很好。试图弄清楚如何更改分隔符,但到目前为止,没有运气。 是的,因为如果包含逗号,公式将不起作用

以上是关于将 QUERY 结果的 GROUPS 组转置为单列的主要内容,如果未能解决你的问题,请参考以下文章

将休眠查询的结果转置为 POJO 列表

在 R 中按组转置数据

将结果集中的列结果转置为行

SQL 将多列转置为行

Codeigniter:从单列中获取所有值作为数组

如何将 javascript 对象转置为键/值数组