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

时间:2020-08-11 22:30:28

标签: arrays sorting google-sheets google-sheets-formula

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

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,3,1,1 book3,2,2,3 ,而最低排名为1,在本示例中为{number of books}。我有一列3,该列计算事物的排名:

Totals

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

True Ranks

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

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

...有什么想法吗?

3 个答案:

答案 0 :(得分:3)

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

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

enter image description here

答案 1 :(得分:1)

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

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

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

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

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

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

答案 2 :(得分:0)

尝试直接方法:

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

enter image description here