LibreOffice Calc按列比较排序

时间:2014-10-10 23:45:33

标签: sorting libreoffice-calc

我正在尝试根据两列匹配对行进行排序。

例如,在下表中,两个用户对同一本书进行评分。在对下面的示例表进行排序时,Book 2应排在第一位,Book 4位于第二位,因为用户的评分都匹配。

  BOOK     USER A     USER B  
 Book 1      4.5        3.5
 Book 2      2.0        2.0
 Book 3      5.0        3.5
 Book 4      3.0        3.0

剩余的不匹配,将根据USER A评级按升序排列(虽然这不是重要的一点)。

我可以使用基本的排序 - 排序BookUSER AUSER A升序,然后排序USER B分别升序,并且所有人都会再次匹配正确的评分正确的书籍,我想要的。但我需要一种更实用的方法来做到这一点。

主要是因为我可以将已排序的数据复制到新工作表中。

1 个答案:

答案 0 :(得分:2)

我不确定这是否是“更有效的方式”,但假设如下:

  |   A    |   B    |    C         
------------------------------
1 | BOOK     USER A   USER B    
2 | Book 1      4.5      3.5    
3 | Book 2      2.0      2.0    
4 | Book 3      5.0      3.5    
5 | Book 4      3.0      3.0    

如果最高等级为5,则可以使用D列中非常简单的公式轻松解决:

=IF(B2-C2=0;-5+B2;B2)  

基本上它会检查列BC之间的差异。如果它们是等于的,它将根据与最大值的差异返回负值。如果不是,我们使用用户A的评级。

然后,您可以根据列D对整个范围(升序)进行排序。你应该得到你想要的结果。