Google sheets 如何基于多个列将某些列堆叠为一个列

Google sheets 如何基于多个列将某些列堆叠为一个列,google-sheets,Google Sheets,我们使用谷歌表单收集针对不同问题采取行动的数据。然后将其发送到google sheets,以监控已识别的操作 我创建了一个试用文件来显示输入和预期输出,可以查看 因此,在这里,问题、行动、指定人员和时间表需要根据团队和活动堆叠在一起,如文件所示。我尝试将查询功能与其他功能结合起来,但仍然没有效果 我以前问过这个问题,但有一个更简单的数据集,可以找到。现在,经过几天的绞尽脑汁将其扩展到一个更复杂的数据集后,我意识到我应该根据数据的精确表示提出问题,而不是简单的(我很自信,但没有意识到这其实相当困难

我们使用谷歌表单收集针对不同问题采取行动的数据。然后将其发送到google sheets,以监控已识别的操作

我创建了一个试用文件来显示输入和预期输出,可以查看

因此,在这里,问题、行动、指定人员和时间表需要根据团队和活动堆叠在一起,如文件所示。我尝试将查询功能与其他功能结合起来,但仍然没有效果

我以前问过这个问题,但有一个更简单的数据集,可以找到。现在,经过几天的绞尽脑汁将其扩展到一个更复杂的数据集后,我意识到我应该根据数据的精确表示提出问题,而不是简单的(我很自信,但没有意识到这其实相当困难——从我的研究中吸取了相当多的教训)


再次,希望你能指导我们如何做到这一点。谢谢

我找不到一个优雅的答案——我的解决方案非常笨拙。它基于使用序列为输出生成正确数量的行的思想,然后对每行的条目数进行滚动计数(使用Countifs)

前两列的公式为:

=ArrayFormula(split(iferror(vlookup(SEQUENCE(counta(C2:N)/4,1,0),
{query(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,"select Col1"),A2:A&"|"&B2:B},2,false),"|"),"|",,false))
=阵列公式(拆分(iferror(vlookup)(序列(counta(C2:N)/4,1,0),

{query(countifs(if(C2:N)”,row(C2:N)),“非常感谢您为此所做的努力。非常感谢!
=ArrayFormula(vlookup(SEQUENCE(counta(C2:N)/4,1,0),{if(A2:A<>"",index(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,0,1),),C2:N},
2+(SEQUENCE(counta(C2:N)/4,1,0)
-vlookup(SEQUENCE(counta(C2:N)/4,1,0),if(A2:A<>"",index(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,0,1),),1,true))*4,true))
=ArrayFormula(vlookup(SEQUENCE(counta(C2:N)/4,1,0),{if(A2:A<>"",index(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,0,1),),C2:N},
3+(SEQUENCE(counta(C2:N)/4,1,0)
-vlookup(SEQUENCE(counta(C2:N)/4,1,0),if(A2:A<>"",index(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,0,1),),1,true))*4,true))
=ArrayFormula(to_date(vlookup(SEQUENCE(counta(C2:N)/4,1,0),{if(A2:A<>"",index(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,0,1),),C2:N},
5+(SEQUENCE(counta(C2:N)/4,1,0)
-vlookup(SEQUENCE(counta(C2:N)/4,1,0),if(A2:A<>"",index(countifs(if(C2:N<>"",row(C2:N)),"<"&if(C2:N<>"",row(C2:N)))/4,0,1),),1,true))*4,true)))