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 A
和 Student 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))
大家好,
我的目标是将C4:E7
中的Answers展平成一列,然后按照Submission Timestamp的升序排序,然后再从Answer1
到[=14=排序].
比如上面的截图,Student B
在2:49:27pm提交了答案,是4个同学中最早的,所以他的答案应该在列的顶部,从[开始=16=] 到 Answer 3
然后只跟从 Student A
和 Student 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))