Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • 使用Web查询功能同步更新..
  • 使用颜色标记工作表标签
  • EXCEL使用技巧
  • Excel表格文字自动换行
  • 用Excel校对学生成绩
  • Excel 内建的预设&q..

最新文章

  • 在 Excel中 打开Ac..
  • 为选择的区域添加边框
  • 如何在Excel中使用文件..
  • 用快捷键实现相对引用和绝对..
  • 【技巧】Excel控制特定..
  • Excel技巧集锦

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > Excel技巧 > Excel应用与操作
Excel应用与操作

关于用SUMPRODUCT取代SUM数组公式的想法

家用过数组公式的都可能知道,对于多条件求和或计数,我们一般都采用这种数组公式来计算。如:
对于1个明细数据(见例),我们需要求该班男、女生各科成绩大于各科平均分的人数,这个问题不难,大家一般都会用sum()来多条件求值就行了(注:数组公式):
=SUM(($C$3:$C$428=$K3)*(D$3:D$428>=AVERAGE(D$3:D$428)))

确实这是解决问题的一种方法,但往往对于初用数组公式的朋友常常会遗忘(或不知道)用(Ctrl+shift+Enter)组合键来结束编辑(论坛中常常有类似的提问)。

出于这个原因,我想到能否用SUMPRODUCT()函数来代替常用SUM()多条件求和公式呢?结果答案是肯定的。
把上面的公式稍做修改,请见:

=SUMProduct(($C$3:$C$428=$K3)*1,(D$3:D$428>=AVERAGE(D$3:D$428))*1)
而且直接用Enter来结束,函数仍然可以正确计算结果。

原因在于:SUMPRODUCT()函数本身就支持数组间运算(相同尺寸的数组相乘后再加总),因此我们毋须用数组公式组合键来结束。
另:提醒大家一点,如果大家试图将公式改为:

=SUMProduct(($C$3:$C$428=$K3),(D$3:D$428>=AVERAGE(D$3:D$428)))
公式不能得出正确结果。

如果多个条件这样并列写入,系统默认是用AND关系(即相乘)来运算,但是SUMPRODUCT不支持逻辑值数组常量间相乘(也算是小遗憾吧:)),因此请一定要将逻辑值转换成数值才行。
大家可能觉得麻烦,因此我建议使用缩写公式,实际上是将多个数组参数变为一个数组,也就可以避免不同维数数组间相乘而带来的错误麻烦了。

=SUMProduct(($C$3:$C$428=$K3)*(D$3:D$428>=AVERAGE(D$3:D$428)))
同理:我们如果需要求出所有男生中总分大于平均总分的所有总分,我们也可以用公式:
=SUMPRODUCT(($C$3:$C$428=$K13)*(I$3:I$428>=AVERAGE(I$3:I$428)),I$3:I$428)

如果数组尺寸(即行列数)相同,建议使用这种方法,如果直接相乘出现错误,可能是I列出现非数值字符,用逗号分隔后,系统可以自动忽略非数值型数据的。

发布人:gdliyy-Access开发者  
分享到:
点击次数:  更新时间:2006-10-29 22:01:49  【打印此页】  【关闭】
上一条:实用的GET函数  下一条:由文本框改变列表框的内容



相关文章

  • • 在 Excel中 打开Access窗体或者报表的错误原因及解决办法
  • • 为选择的区域添加边框
  • • 如何在Excel中使用文件对话框
  • • 用快捷键实现相对引用和绝对引用快速来回切换
  • • 【技巧】Excel控制特定单元格输入文本的长度
  • • Excel技巧集锦
  • • Excel技巧大汇总
  • • 在word中输出数学符号

热门文章

  • [2005-03-12] ActiveX控件在Excel97中的运用access数据库
  • [2005-02-12] 用Excel软件作有边界道路图access数据库
  • [2005-02-18] Excel2000 应用案例之三十七access数据库
  • [2005-02-17] Excel2000 应用案例之十四access数据库
  • [2004-05-15] 注意对文本到语音的使用access数据库
  • [2005-03-06] 用 Excel 实现自动查表access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn