如何根据另一列数值对一列文本进行排序?

问题描述

我有一个电子表格,其中有几个同事和我根据自己的喜好对一些书进行排名。看起来像这样:

function exit(start){
  var time = Date.now() - start;
  console.log(`\n\x1b[1m\x1b[37mFinished in ${time}ms. \x1b[32mSuccess: ${successes} \x1b[37m- \x1b[31mErrors: ${errors} \x1b[37m`);
  process.exit();
}

在这个排名世界中,一本书的最高排名为Books,John Ranks,Smith Ranks,Doe Ranks book1,1,3,2 book2,1 book3,2,3 ,而最低排名为1,在本示例中为{number of books}。我有一列3,该列计算事物的排名:

Totals

在此示例中,Books,Doe Ranks,Totals book1,6 book2,5 book3,7 将获胜,因为它的数字最少,因此具有最高的优先级。现在,我想拥有另一列book2之类的内容,该列根据True Ranks列中的值对书籍的名称进行排序。 Totals单元格值将始终与其所代表的书本在同一行中。我想为total写一个函数,该函数将根据总值的升序对书名进行排序(排序)。因此,看起来像这样:

True Ranks

因为Books,Totals,True Ranks book1,6,book2 book2,5,book1 book3,7,book3 是升序。我对如何在电子表格中进行操作不屑一顾,但我对所有可用的选项都不熟悉。有什么想法吗?

编辑:我不确定我是否解释得足够好(总是担心发生这种情况):从编程的角度来说,我实际上有两个列表,一个int列表{book2: 5,book1: 6,book3: 7}和一个String列表{ {1}},我问我如何 首先 复制字符串列表(我不想修改字符串列表) int列表(我也不想修改int列表),然后同时对它们进行排序(尽管我认为int列表排序的结果不会显示在任何地方)。>

...有什么想法吗?

解决方法

您可以在公式中使用SORT函数

=SORT(A2:A4,E2:E4,1)

enter image description here

,
F1=sort(A1:E3,5,False)  

排序是一个数组函数,因此需要在其下方和右侧进行清除以获取结果。

这将返回所有5列。您可以隐藏不需要的。

您也可以变得聪明(稍后会咬住您...)并动态构建范围:

 F1=sort({A1:A3,E1:E3},2,False)

这消除了单个结果的多余列。

,

尝试直接方法:

=QUERY(SORT({A2:A,B2:B+C2:C+D2:D},1),"select Col1 where Col1 is not null",)

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...