ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: Eraser2000

[原创] [原创]骗你爱上数组公式

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2003-3-22 19:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:数组公式
好,太好了,能让我这么糊涂的人看慬,真是不容易!!!!

TA的精华主题

TA的得分主题

发表于 2003-3-24 17:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
TO:Eraser2000 小弟还真是愚笨,我就是搞不懂为何下列公式中只能用“<>",而不能用"-",能否明示 {=SUM((($B$7:$B$20="AA")<>(MONTH($C$7:$C$20)>=8))*$E$7:$E$20)} 另一个问题,=SUM(({10;20;30}>10)*{11,22,33})会等于132不知是如何运算出来的,能否指点,谢了!!!

TA的精华主题

TA的得分主题

发表于 2003-3-24 17:36 | 显示全部楼层
风中飘雪: 是等于55不是等于132,我打开文件时就是55,没错。

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-3-24 17:39 | 显示全部楼层
对于IF函数来说, =IF(逻辑值,如果为真,如果为假),而逻辑值不仅有TRUE和FALSE,还有用数字来表示的, 0为FALSE,其他数字为TRUE (-1也是TRUE) 当在IF中用减号时,只要不等于0,就都是真, 所以不管是TRUE-FALSE还是FALSE-TRUE,结果都是TRUE, 而在SUM中就不一样了, 1就是1, 0就是0, -1就是-1, 所以, 如果用<>是返回逻辑值,先TRUE再FALSE 和先FALSE再TURE都返回TRUE, 一点问题没有, 如果是用-号的话, TRUE-FALSE=1,而FALSE-TRUE=-1,这是两个完全不同的结果, 所以会造成后面的($E$7:$E$20)有正有负,无法得到你所需要的结果 我在前面的文章里说过, 一定要用-号也可以, 那就是加上ABS(), 把所有的+1和-1都变成1, 就行了.你在想想吧, 关键就是在于好好研究一下逻辑值在运算中的作用. 第二个问题, 其实你仔细看一下就明白了, 第一个参数是{10;20;30},代表三行一列, 第二个参数是{11,22,33},代表一行三列, 这其实是一个矩阵 数组常量中, 逗号和分号可是不一样的哦

TA的精华主题

TA的得分主题

 楼主| 发表于 2003-3-24 17:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用chenjun在2003-3-24 17:36:51的发言: 风中飘雪: 是等于55不是等于132,我打开文件时就是55,没错。
TO CHENJUN, 他的问题和我在文件中写的例子不一样,请再仔细看看风中飘雪所写的

TA的精华主题

TA的得分主题

发表于 2003-3-24 19:50 | 显示全部楼层
以下是引用Eraser2000在2003-3-24 17:39:11的发言: 第二个问题, 其实你仔细看一下就明白了, 第一个参数是{10;20;30},代表三行一列, 第二个参数是{11,22,33},代表一行三列, 这其实是一个矩阵 数组常量中, 逗号和分号可是不一样的哦
TO:Eraser2000 非常感谢你的耐心指点,我知道了,从数学上讲,这两个矩阵相乘({10;20;30}*{11,22,33})得到的是一个三行三列的矩阵,对=SUM(({10;20;30}>10)*{11,22,33})这个公式来说,得到的应该就是{0;1;1;}*{11,22,33}=(0+0+0)+(11+22+33)+(11+22+33)=132,不知我的理解是否有什么偏差,请大家指正,再次感谢Eraser2000和chenjun,还有半榻茶烟。。。。您们向来都很热心答复我的贴子,我真的为你们的一向热忱感激涕零、滴、滴、滴。。。。
[此贴子已经被作者于2003-3-24 19:51:55编辑过]

TA的精华主题

TA的得分主题

发表于 2003-3-24 22:14 | 显示全部楼层
Eraser2000自说自话之:数组公式-->Part VI-->列出不重复的名单-->Countif(B7:B20,B7:B20)怎么解释?

TA的精华主题

TA的得分主题

发表于 2003-3-24 22:24 | 显示全部楼层
将公式分解求值后终于理解了。Countif(Range, Criteria) 的Criteria 的取值好象很模糊啊。 向Eraser2000 致敬!

TA的精华主题

TA的得分主题

发表于 2003-3-24 23:40 | 显示全部楼层
to 风中飘雪: 不好意思,没看出公式中是“;”号,SUM(({10;20;30}>10)*{11,22,33})中的({10;20;30}>10)*{11,22,33}是产生下列这样的3行3列的数组,你可以选中3*3的单元格区域输入({10;20;30}>10)*{11,22,33}后按ctrl+shift+enter就能看到。 0 ,0 ,0 11,22,33 11,22,33 SUM函数再对这个数组求总和。所以是132。看样子今天我是头昏眼花了。
[此贴子已经被作者于2003-3-24 23:42:54编辑过]

TA的精华主题

TA的得分主题

发表于 2003-3-25 10:56 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 14:27 , Processed in 0.034283 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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