这个公式错在哪?

registry 2004-01-13 03:12:28
这个公式错在哪?
=SUM(IF(大厂中学!$G$2:$G$181>=90*大厂中学!$G$2:$G$181<=100,IF(大厂中学!$C$2:$C$181=B3,1,0),0))
...全文
27 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhousulin5 2004-01-22
  • 打赏
  • 举报
回复
脸红。
不过,我看不了那贴啊。总不至于我现注册,然后等到挣够点数才看吧。其实我看了上面的贴也已经知道sum可以用来计数了。
EdwardZhou 2004-01-19
  • 打赏
  • 举报
回复
SUM 函数当然可以用来进行多条件的计数计算。

两位需要数组公式的入门教材:
http://club.excelhome.net/dispbbs.asp?boardID=3&ID=13260&page=1
重点看第五节。
zhousulin5 2004-01-19
  • 打赏
  • 举报
回复
----------人家是要对符合条件的单元格计数,并不是计算合计值,而且,三条件不同并列的。
你这样不行的!---------------

要计数的话用count或者counta,用sum太过繁杂了。
EdwardZhou 2004-01-17
  • 打赏
  • 举报
回复
To lgxysl(我心欲静):

使用数组公式进行条件求和、条件计数,是一种很典型、很规范的数组使用方法,其核心就是逻辑运算在数组中的合理使用。

分析提问者的题意,我们不难看出,大厂中学!$G$2:$G$181 是一组学生的分数;B3 单元格可能是一个数据有效性序列构成的可选下拉菜单,其中的内容可能是性别选择(男、女)或者班级选择(一班、二班、三班……);而大厂中学!$C$2:$C$181 中应该是具体的性别信息或者是班级信息。
提问者的要求,是计算出男生、女生(或者一班、二班、三班……)中分数在 90 分至 99 分学生的数目,并且通过 B3 单元格的选择,来变换计算结果。

撇开合理性方面的讨论,您前面提供的公式:{=SUM(and(IF(大厂中学!$G$2:$G$181>=90,大厂中学!$G$2:$G$181<=100),IF(大厂中学!$C$2:$C$181=B3,1,0),0))} 也是错误的(把 IF 和 AND 嵌套写反了)。
您后面的改动,使人不知道您要干什么。莫非您的男女生分数是分别放在两列中的?即便如此,您的条件判断方法也是错误的。对于这样问题的解决,首先要做的是规范您的数据字段结构,而不是写一个公式。

退一步说,您非得把男女生的分数分别放在两列,规范解答您这个“怪题”也不难,只要把握好逻辑运算式得正确使用就行了:
{=SUM((大厂中学!$G$2:$G$181>=90)*(大厂中学!$G$2:$G$181<=100)*((大厂中学!$C$2:$C$181=B3)*大厂中学!$d$2:$d$181+($C$2:$C$181<>B3)*大厂中学!$e$2:$e$181)))}

解题思路如下:
前面部分 (大厂中学!$G$2:$G$181>=90)*(大厂中学!$G$2:$G$181<=100) 很简单,是两个条件的合并判断;
后面部分 (大厂中学!$C$2:$C$181=B3)*大厂中学!$d$2:$d$181+($C$2:$C$181<>B3)*大厂中学!$e$2:$e$181) 实际上是两个数组区域的合并。区域 $d$2:$d$181 和区域 $e$2:$e$181 分别乘以一个逻辑值 0 或者 1,由于逻辑条件“=B3”和“<>B3”中只能有一个条件成立,得出的结果必然是 n + 0 或者是 0 + n,这样在实际运算效果中就得到了根据条件分别计算两个不同区域数据的目的。

lgxysl 2004-01-16
  • 打赏
  • 举报
回复
下面的看你如何改:
{=SUM(and(IF(大厂中学!$G$2:$G$181>=90,大厂中学!$G$2:$G$181<=100),IF(大厂中学!$C$2:$C$181=B3,大厂中学!$d$2:$d$181,0),大厂中学!$e$2:$e$181))}
不要越改越复杂呀!


EdwardZhou 2004-01-15
  • 打赏
  • 举报
回复
To lgxysl(我心欲静):

请仔细验证公式,正确与否。

我给出的公式就是计算符合三个条件的单元格数目。
lgxysl 2004-01-15
  • 打赏
  • 举报
回复
EdwardZhou:
人家是要对符合条件的单元格计数,并不是计算合计值,而且,三条件不同并列的。
你这样不行的!
EdwardZhou 2004-01-14
  • 打赏
  • 举报
回复
在数组公式中,没有必要再使用 AND、IF 等函数,应该正确合理地使用逻辑运算来完成条件判断。

公式可以改成:
=SUM((大厂中学!$G$2:$G$181>=90)*(大厂中学!$G$2:$G$181<=100)*(大厂中学!$C$2:$C$181=B3))
公式输入完成后不是按 Enter,而是同时按 Shift + Ctrl + Enter,此时系统会自动在您的公式外层加上一对大括号,变成:
{=SUM((大厂中学!$G$2:$G$181>=90)*(大厂中学!$G$2:$G$181<=100)*(大厂中学!$C$2:$C$181=B3))}

结果应该正确。


YE0515 2004-01-14
  • 打赏
  • 举报
回复
高手就是高手!我同意EdwardZhou()的意见!
registry ()在你本身的
=SUM(IF(大厂中学!$G$2:$G$181>=90*大厂中学!$G$2:$G$181<=100,IF(大厂中学!$C$2:$C$181=B3,1,0),0))这个公式中没有必要使用由"IF"引起条件.
通过直观运算就能解决.你还是仔细看看EdwardZhou()的解决方案.
lgxysl 2004-01-13
  • 打赏
  • 举报
回复
{=SUM(and(IF(大厂中学!$G$2:$G$181>=90,大厂中学!$G$2:$G$181<=100),IF(大厂中学!$C$2:$C$181=B3,1,0),0))}
给分
baiyu20122 2004-01-13
  • 打赏
  • 举报
回复
你是想用数组吧?
MeMeFang 2004-01-13
  • 打赏
  • 举报
回复
不明白楼主的意思?

6,210

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office应用
社区管理员
  • Microsoft Office应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧