首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >高级分类谷歌页

问高级分类谷歌页
EN

Web Applications用户
提问于 2020-06-07 19:39:43
回答 1查看 114关注 0票数 1

我正在处理我有的一个分类问题。现在我手动完成,但我想自动完成。

所以我有7列和很多行。

首先,我对所有行进行排序,使A列中的最大值位于顶部--然后在B列中,我给顶行取1,第二行给出2,等等。

然后对所有行进行排序,使C列的最大值位于顶部。在此之后,在D列和第1行中,我给出了一个值1,下一行值2,等等。

然后,在E列中,我将B列和D列的数字相加,然后从E列中对E列进行排序,使最低值位于顶部。

在此之后,我取前20行,再用F列和顶部的最大值进行排序。

这是一个有点复杂的分类系统,我是在一个常规的基础上进行的。

有没有人知道如何做得更简单一点?

编辑:

因此,我现在有5个不同的床单,不是最漂亮的解决方案。

在第一次我有

代码语言:javascript
复制
QUERY('data_2020-06-07'!A1:I998;"select A, B, C, D, E";1)

第二

代码语言:javascript
复制
QUERY('Sort 1'!A1:F249;"select A, B, C, D, E, F order by F desc";1)

第三

代码语言:javascript
复制
QUERY('Sort 2'!A1:G308;"select A, B, C, D, E, F, G order by D desc";1)

第四

代码语言:javascript
复制
QUERY('Sort 3'!A1:I1000;"select * where I <> '' or I is not null order by I Limit 20")

第五

代码语言:javascript
复制
QUERY('Sort 4'!A1:I1000;"select * where E <> '' or E is not null order by E DESC Limit 20")
EN

回答 1

Web Applications用户

回答已采纳

发布于 2020-06-11 09:44:52

您正在对各个字段进行排序,手动对结果进行排序,并将排名组合在一起以获得结果。

下面的解决方案并不完美(IMHO -完美的解决方案将是一个单一的,完全集成的公式),但它是好的-它确实消除了所有的人工处理,并可以设置为重复操作。可能(可能!)其他人可能能够将其集成到一个单一的公式中,但在此之前,这可能会满足您的需求。

排名

解决方案的关键是排序元素。您将描述这方面的两个实例,以及第三个变体:

  • “在B栏中,我给上一行1,第二行给2等等。”
  • “我也是这样做的,在D列和第1行中,我给出了一个值1,下一行值2等等。”
  • “在E栏中,我把B栏和D栏的数字相加在一起”

我在Google帮助上使用了使用Google查询如何对数据进行分区和排序中描述的排名方法。我不愿尝试描述这是如何工作的--即使是最初文章的作者也说:"我不打算详细解释这,因为我最终需要一个威士忌瓶子。“只需说一句就行了。

您使用B、D&E列,因为您在这些单元格中手动插入了等级。在这个解决方案中,我保留了这些列(为了便于比较),但我不使用它们。每个排名列都被追加到查询的右侧端。这将使您能够删除B、D&E列(如果您愿意)。

输出:为了简单起见,在与"data_2020-06-07“相同的电子表格中插入一个新的表格。我们把这张新的纸叫做“那种”。

Query#1:按A列排序(降序),按A列排序

  • 在sheet=“排序”中,单元格A1插入以下公式:=ArrayFormula({query('data_2020-06-07'!A1:I1001,"select * order by A desc"),QUERY({"ColA Rank";If('data_2020-06-07'!A2:A1001="",,row('data_2020-06-07'!A2:A1001)-row('data_2020-06-07'!A2)+1)})})

Query#2:按C列排序(降序),按C列排序

  • 在sheet=“排序”中,单元格K1中插入“query#2=>”
  • 在sheet=“排序”中,单元格L1插入以下公式:=ArrayFormula({query(A1:J1001,"select * order by C desc"),QUERY({"ColC Rank";If(C2:C1001="",,row(C2:C1001)-row(C2)+1)})})

创建E栏:添加排名栏A和C栏(参见E栏)

  • 在sheet=“排序”中,单元格W1插入以下公式:={"ColA+C Rank";arrayformula(If(U2:U="",,U2:U+V2:V))}

Query#3:在W列(A列和C列的总和)上排序

  • 在sheet=“排序”中,单元格X1中插入“query#3=>”
  • 在sheet=“排序”中,单元格Y1插入以下公式:=query(L1:W1001,"select * order by W asc")

Query#4:按AD列排序(参见F列)

  • 在sheet=“排序”中,单元格AK1中插入“query#4=>”
  • 在sheet=“排序”中,单元格AL1插入以下公式:=query(Y1:AJ1001,"select * order by AD desc limit 20")

当然,您可以为Query#4创建一个新的工作表,以便列标题与列对齐。

票数 0
EN
页面原文内容由Web Applications提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webapps.stackexchange.com/questions/143016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档