【问题标题】:The AGGREGATE function is not working as expectedAGGREGATE 函数未按预期工作
【发布时间】:2017-01-20 19:31:27
【问题描述】:

我有一个可以在 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   

我正在尝试在“threadid”中查找最后一个“messageid”。如果'replyto'是0,那么我得到一个结果,如果不是0,则为空白。

我在 Excel 中成功使用了这个函数:

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

在 LibreOffice 中,我使用相同的函数得到不同的结果。我得到的是第一个数字,而不是 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   

有人可以帮帮我吗?

【问题讨论】:

    标签: function formula libreoffice-calc


    【解决方案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)),"")}
    

    适用于 ExcelCalc

    要在 Excel 中输入数组公式,请将公式输入到不带大括号的单元格中,然后按 Ctrl+Shift+Enter 确认.然后大括号会自动出现。

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

    【讨论】:

    • 我正准备写同样的东西,根据你的回答here
    猜你喜欢
    • 1970-01-01
    • 2018-02-01
    • 2019-10-30
    • 2015-04-11
    • 2022-01-25
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多