请选择 进入手机版 | 继续访问电脑版

LibreOffice 中文社区

 找回密码
 马上加入

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
开启左侧

[问题] sumifs()函数bug

[复制链接]
grassvalley 发表于 2020-5-19 15:23:18 | 显示全部楼层 |阅读模式
本帖最后由 grassvalley 于 2020-5-19 16:31 编辑

在excel或wps中,sumifs()函数可以使用“或”条件,一次获取多个单元格的值,然后使用sum()函数进行合计。

比如A列是人名,B列是工资,我们求张三和李四的工资合计。可以使用
sum(sumifs(B:B,A:A,{"张三","李四"}))

这在Excel和WPS都是可以通过的,但在Calc中却返回了零值。修正:不是返回零值,而是只查找第一个匹配值,比如示例中的“张三”,如果找到“张三”会返回和张三对应的值,如果找不到就是零。把“李四”扔了,不管了。

操作系统:ubuntu 20.04    LibreOffice 版本: 6.4.3.2操作系统:windows 10  LibreOffice 版本:6.3.6.2

也许LibreOffice Calc中数组运算的规则和Excel不一样




高原之狼 发表于 2020-5-20 08:22:05 | 显示全部楼层
我可以验证 =SUMIF(B:B,A:A,{"张三","李四"}) 这样的公式只找第三个参数里的第一个字符串,第二个不管。但是我没有 Excel,无法查证 Excel 是怎样计算这个公式的。

另外为什么要外面再加一个 SUM()?这样 SUMIF() 的返回值是个数组么?
 楼主| grassvalley 发表于 2020-5-21 11:04:32 | 显示全部楼层
1、不是sumif(),是sumifs()。
2、这样的sumifs()返回的是一个数组。
3、问题是这样的,在Calc里,处理返回结果是数组的函数,必须手工按下Ctrl+Shift+Enter,然后系统会自动生成 {...} 花括号。手工录入的花括号无效。所以从WPS过来的文件,用Calc打开后,这个函数就无法正常运行。
高原之狼 发表于 2020-5-21 16:09:44 | 显示全部楼层
抱歉,测试的是 SUMIFS(),回帖时写错了。

现在的情况是我在 LO Calc 和 Excel 的文档里都找不到有第三个参数可以是数组,对应返回值也是数组的说法。很可能是 Excel 没放进标准里的隐藏功能,所以 Calc 没实现也很正常。

建议你贴一个 XLSX 格式的附件例子(人名用英文最好,就用 Zhang, Li 就可以),然后我可以翻译并帮你报告到官方 Bugzilla 建议他们增加此功能。

点评

我查看的 Excel 文档:https://support.office.com/zh-cn/article/sumifs-%E5%87%BD%E6%95%B0-c9e748f5-7ea7-455d-9406-611cebce642b  发表于 2020-5-21 16:11
高原之狼 发表于 2020-5-21 16:24:29 | 显示全部楼层
然后这个 Ctrl+Shift+Enter 的神奇操作我就更没用过了,但也许和这个 SUM(SUMIFS(...)) 不能正常求和 SUMIFS() 返回结果是两个不同的问题?
 楼主| grassvalley 发表于 2020-5-22 09:07:30 | 显示全部楼层
确切的说,我使用的是WPS,但是这种方法是在网上搜到介绍excel的资料里找到的。
我测试过,在LibreOffice Calc里,安装这种格式录入完公式,按下Ctrl+Shift+Enter后,公式是正确有效的。但是,直接按Enter是无效的。
使用LibreOffice 打开示例文件,似乎是正确的,但是只要一重计算,结果就错了。

sum-sumifs.zip (7.87 KB, 下载次数: 1)
高原之狼 发表于 2020-5-22 12:23:34 | 显示全部楼层
grassvalley 发表于 2020-5-22 09:07
确切的说,我使用的是WPS,但是这种方法是在网上搜到介绍excel的资料里找到的。
我测试过,在LibreOffice C ...

好的,我会在群里找有 Excel 的人确认一下再提交。用 Calc 打开时显示数值正确不重要,因为电子表格文档都是同时保存公式和结果的,如果打开时不重新计算就会直接用文件里的数值。Calc 可以设置打开文件时必须重新计算,Excel/WPS 应该也有类似功能。


按 LO 帮助文档的说法,Ctrl+Shift+Enter 的用处是把一个返回数组或矩阵的公式结果放在一片多个单元格的区域里:
https://help.libreoffice.org/6.4 ... lc/04/01020000.html
所以不能手动加花括号似乎也正常。

但这个功能我真的不熟悉,所以如果有什么和 Excel/WPS 不同的地方还需要你再仔细描述一下并最好附上示例文件。


高原之狼 发表于 2020-5-22 13:36:29 | 显示全部楼层
已提交官方 Bugzilla:
https://bugs.documentfoundation.org/show_bug.cgi?id=133260

建议板主把此贴移至 bug 反馈板。

然后 Ctrl+Shift+Enter 的问题楼主可以考虑另开贴讨论。
高原之狼 发表于 4 天前 | 显示全部楼层
官方开发者要求提供 Excel 生成的 XLSX 文件,WPS 生成的不够用。

希望楼主提供一下。其他有 Excel 的水友也欢迎帮忙。
您需要登录后才可以回帖 登录 | 马上加入

本版积分规则

Archiver|手机版|小黑屋|LibreOffice 中文社区 ( 粤ICP备13080851号-4 )

GMT+8, 2020-5-30 10:36 , Processed in 0.119087 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表