LibreOffice聚合函数无法正常工作

时间:2017-01-20 19:31:28

标签: function spreadsheet libreoffice libreoffice-calc

我有一个在Excel中工作的公式,我认为我在LibreOffice中工作,但我在程序之间得到了不同的结果。我正在处理一个数万行的论坛数据库,所以我不能像我在这里那样手动完成。

我有一个看起来像这样的表(在Excel中也是如此):

messageid   threadid    replyto Last messageid in thread
3550        3550        0       3550
3867        3867        0       4677
3947        3867        3867        
3998        3867        3947        
4337        3867        3998        
4414        3867        4337        
4481        3867        4414        
4677        3867        3867        
3925        3925        0         7200
4653        3925        3925        
4959        3925        4653        
7200        3925        3925        
4092        4092        0         4092
5800        5800        0         5800
5802        5802        0         5802
7202        7202        0         7202
7203        7203        0         7656
7294        7203        7203        
7305        7203        7203        
7342        7203        7203        
7406        7203        7342        
7436        7203        7305        
7656        7203        7203   

快速解释,我正在尝试找到最后一条消息代码'在一个线程中。如果'回复'是0,然后我得到一个结果,如果它<> 0,然后空白。

我在Excel中成功使用了此功能

=IF(C2=0,AGGREGATE(14,6,$A$2:$A$24/($B$2:$B$24=B2),1),"")

在LibreOffice中,我使用相同的功能得到不同的结果。我没有收到Col.A显示的最后一个(最大)数字,而是得到第一个数字,所以它看起来像这样:

messageid   threadid    replyto Last messageid in thread
3550        3550        0       3550
3867        3867        0       3867
3947        3867        3867        
3998        3867        3947        
4337        3867        3998        
4414        3867        4337        
4481        3867        4414        
4677        3867        3867        
3925        3925        0        3925
4653        3925        3925        
4959        3925        4653        
7200        3925        3925    
4092        4092        0        4092
5800        5800        0        5800
5802        5802        0        5802
7202        7202        0        7202
7203        7203        0        7203
7294        7203        7203        
7305        7203        7203        
7342        7203        7203        
7406        7203        7342        
7436        7203        7305        
7656        7203        7203   

有人可以帮帮我吗?

我无法在工作中访问Excel,而且我使用的是LibreOffice,我通常喜欢并且没有任何问题。

先谢谢, Melvins138

1 个答案:

答案 0 :(得分:1)

好像Calc无法直接在公式中将$A$2:$A$24/($B$2:$B$24=B2)作为数组。

数组公式:

{=IF(C2=0,MAX(IF($B$2:$B$24=B2,$A$2:$A$24,0)),"")}

适用于Excel以及Calc

要在Excel中输入数组公式,请将公式输入到没有大括号的单元格中,然后按 Ctrl + Shift + 输入进行确认。然后大括号自动出现。

要在Calc中输入数组公式,请输入不带大括号的单元格的公式。然后使用[fx]按钮打开功能向导。设置[x]数组按钮进行检查。在Calc中,不使用单元格的填充句柄向下填充数组公式,因为这会导致扩展目标数组范围而不是复制公式。而是将其复制到剪贴板并将其粘贴到多个目标单元格。