【问题标题】:Use GSheet Interface to sort with data generated with ArrayFormula使用 GSheet 接口对 ArrayFormula 生成的数据进行排序
【发布时间】:2021-02-25 08:49:30
【问题描述】:

我有一个 Google 电子表格 (example),其中包含

  • 来源工作表(任务、项目)
  • 一个计算表(项目增强型),它使用公式从多个表中聚合数据(计算项目所有任务的估计总和)

我希望我的用户能够使用 google 界面(菜单数据 > 排序范围)轻松对聚合数据进行排序。 这只是一个示例,因此没有大量数据/列,但在我们使用的实际电子表格中,有很多列,用户可能需要对任何列进行排序。

我已经看到了多个 SO 问题,这些问题处理诸如从 arrayFormula 计算的排序结果等问题,但是是否有与使用 GSheet 接口中的过滤器兼容的解决方案?所以完全不了解 gsheet 公式 cas 的人仍然使用工作表吗?

如果有解决方案涉及创建不同的工作表或使用不同类型的公式(查询而不是 arrayFormula 等)产生相同的结果,那很好。

【问题讨论】:

  • 你最好使用谷歌数据洞察来做这样的事情。这是an example using your data。只需复制它并查​​看内部。
  • 我认为您无法使用标准 UI 工具以合理的方式对公式生成的数据进行排序。您可以使用 Google App Script 编写一些代码,制作用于排序的自定义菜单......或者只是使用脚本而不是公式来聚合您的数据,这样就会有可排序的静态值。

标签: google-sheets google-sheets-formula array-formulas


【解决方案1】:

注意事项

使用用户界面,您无法对ARRAYFORMULA 的输出进行排序。您将在排序操作的结果中丢失相应的单元格引用。

使用查询

使用QUERY 公式,您可以使用order by 运算符轻松按任何列排序。

在你的情况下:

=QUERY('project-enhanced'!A1:C4, "select * order by C")

现在,由于您不希望您的用户编写任何公式或代码,您可以构建一个简单的用户界面来调整您的查询公式:

=QUERY('project-enhanced'!A1:C4, "select * order by "&B1)

然后,您可以将 B1 单元格设为用户输入字段,以指定他想要对数据进行排序的列字母。

SORT BY:    C   
Project ID  Start date  Sum of estimations
2           11/14/2020  5
1           11/13/2020  30
3           11/16/2020  90

参考

QUERY formula

【讨论】:

    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 2017-01-25
    • 2013-11-03
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多