如何将查询绑定到谷歌电子表格中的行功能?



嗨,我是新来的,正在研究谷歌电子表格查询功能来做一些工作。这是我正在处理的示例文件 https://docs.google.com/spreadsheets/d/1gpnZ2XmZbPaZVjMa734dXLHJmydnAG_YXW7V_LBXGRU/edit?usp=sharing

第一个选项卡"All_data"包含不断增长的数据列表。我做了第二个选项卡"最近",以相反的顺序从All_data中提取最近的 200 行。作为练习,我只是玩第一列。首先,我能够使用此代码拉取最近的 200 行=query(All_data!A2:A,"offset "&(counta(All_data!A2:A)-200),0)然后我在互联网上发现=SORT(Range_to_sort, ROW(values_in_order), false)可以颠倒范围的顺序。当我尝试仅使用纯文本范围("最近"选项卡的 B 列(时,该排序有效 - 实际上我不确定它是如何工作的。我认为 row(values_in_order( 应该只返回一个值,因为它不是数组公式。但不知何故,它有效。

无论如何,当我尝试像=row(query(All_data!A2:A,"offset "&(counta(All_data!A2:A)-200),0))一样将查询绑定到行时,它返回 #NA 而不是值。最终,我想做的是=sort(query(All_data!A2:A,"offset "&(counta(All_data!A2:A)-200),0), row(query(All_data!A2:A,"offset "&(counta(All_data!A2:A)-200),0)),false)

任何建议都会有所帮助。

谢谢。

哇。 反转列的技巧对我来说是新的。 不知道它是如何工作的。 但是,如果您只是想避免对范围 A2:A200 进行硬编码,我可以使用 INDIRECT 进行工作。

=sort(indirect("A2:A"&counta(A2:A)+1),row(indirect("A2:A"&counta(A2:A)+1)),false)

因此,如果您有一个帮助程序列(A 列(返回查询结果,然后此公式反转排序顺序,无论您有多少个值,这将起作用。 但是,如果您总是要有 200 条记录,那么您当前的公式已经在这样做了。

我现在单独完成了这个答案,因为我的另一个答案可能仍然有用。

请参阅工作表中的"最近-GK"选项卡以获取工作结果。

阅读排序语法解释了反向的工作原理。你只是给出了一个数字列表 - ROW(A2:A5( 给出 2,3,4,5 - 用于排序顺序。 并且对排序顺序使用反向标志,使其向后排序。

所以我们不需要担心查询结果的范围,我们只需要知道范围的长度。 然后我们可以使用任何虚拟列与排序的 ROW(range( 部分一起使用。 如果您知道查询将始终返回 200 条记录,则可以执行以下操作:

=SORT(QUERY(All_data!A2:A,"OFFSET "&(COUNTA(All_data!A2:A)-200),0),ROW(A1:A200),FALSE)

如果可能无法获得 200 条记录,您可以将查询结果返回到临时帮助器列中,执行 COUNTA 来计算记录,然后使用间接的答案来调整 ROW(范围( 以匹配记录数。

让我知道这是否有帮助。

相关内容

最新更新