我有一个在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
答案 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中,不使用单元格的填充句柄向下填充数组公式,因为这会导致扩展目标数组范围而不是复制公式。而是将其复制到剪贴板并将其粘贴到多个目标单元格。