google sheet 中的矩阵展平后如何根据时间戳对答案进行排序?

How to sort the answer based on the timestamp after flatten the matrix in google sheet?

大家好,

我的目标是将C4:E7中的Answers展平成一列,然后按照Submission Timestamp的升序排序,然后再从Answer1到[=14=排序].

比如上面的截图,Student B在2:49:27pm提交了答案,是4个同学中最早的,所以他的答案应该在列的顶部,从[开始=16=] 到 Answer 3 然后只跟从 Student AStudent D.

的答案

我现在正在使用 =QUERY(FLATTEN(C4:E7),"Select * where Col1 is not null")。在这种情况下,我不确定如何首先根据时间戳对其进行排序。

第 I 列是预期输出。

希望在这个问题上得到一些帮助,任何帮助将不胜感激!

尝试:

=arrayformula(query(iferror(split(flatten(if(A4:A<>"",B4:B&char(9999)&C4:E,)),char(9999)),),"select Col2 where Col2 !='' order by Col1,Col2",0))

备注:

起点是:

=arrayformula(if(A4:A<>"",B4:B&char(9999)&C4:E,))

这会重复您的 'Submission time' 列与 3 个答案列中的每一个,由一个不太可能在您的数据集中使用的字符分隔 char(9999) (✏)。

然后 flatten() 将它们放在 1 列中:

然后在 ✏ 上使用

split() 将结果分为 2 列,但是您需要 iferror() 来停止计算 sheet.[=23 的公式问题=]

然后 query() 将结果环绕到 select col2(其中不为空),并按 Col1,Col2 排序。

替代 filter(),因此您不需要 iferror():

=arrayformula(query(split(flatten(filter(B4:B&char(9999)&C4:E,B4:B<>"")),char(9999)),"select Col2 where Col2 !='' order by Col1,Col2",0))