增强Excel的SUM()函数:实现求和前非数据项的预筛查
来源:互联网 发布:医疗包升级数据 编辑:程序博客网 时间:2024/06/04 00:24
一、功能描述
自定义一个 Excel 函数 sumDIY(arg1, arg2, ... ),其中参数个数任意,类型也任意:可以是文本型数字"123",或纯文本"demo",或单元格区域,抑或是数组形式的引用Row(1:3)。实现功能:只对各参数中的各个数值求和,并作为函数结果显示出来。
二、思路分析
1、参数个数不确定,用关键字 ParamArray;
2、对参数的类型分类:
2.1. 对象型(如单元格区域);
2.2. 数组型(如Row(1:3));
2.3. 值类型(又分为【数值型】和【非数值型】);
三、实现代码
Function sumDIY(ParamArray arr()) Dim i&, rng As Range, sumTemp#, arrTemp For i = 0 To UBound(arr) '参数为单元格区域: If IsObject(arr(i)) Then sumTemp = 0 For Each rng In arr(i).Cells If IsNumeric(rng.Value) Then sumTemp = sumTemp + rng.Value End If Next arr(i) = sumTemp '参数为数组: ElseIf IsArray(arr(i)) Then arr(i) = WorksheetFunction.Sum(arr(i)) '参数为值类型:是数字则不变,非数字则置0: ElseIf Not IsNumeric(arr(i)) Then arr(i) = 0 End If Next i sumDIY = Application.Evaluate(Join(arr, "+"))End Function
四、实测效果
五、注意事项
1、当参数中有数组时,公式必须切换到数组形式:【Ctrl+Shift+Enter】;
2、用内置的sum函数处理数组参数,省略了对该数组数据是按行还是按列分布的讨论,简化了代码,唯一不足是调用了工作表函数,执行效率可能会有影响。
阅读全文
0 0
- 增强Excel的SUM()函数:实现求和前非数据项的预筛查
- mysql sum() 求和函数的用法
- Excel实现数据项校验的功能---VBA的编写以及数据有效性的设置
- oracle累积求和分析函数sum over的使用
- matlab中求和函数sum的具体使用实例
- matlab中sum函数对矩阵的求和总结
- 用excel进行设计(80):数据项的设计规范
- 关于EXCEL中SUM函数的问题
- group by 的 sum 求和
- python如何实现快速的求和函数
- 一个函数实现树的非递归前、中、后序遍历
- sum函数求和
- EXCEL求和的精度问题
- 用公式实现动态设置图表的轴数据项
- 用公式实现动态设置图表的轴数据项
- Excel高级求和函数
- (LeetCode)Two Sum --- 求和指定的索引
- DataGrid数据项的手工添加
- Kubernetes可以为容器编排做点什么
- 趣味博弈论 -- 阶梯博弈
- NYOj-找球号(二)-哈希
- JAVA基本程序设计规范
- HDU
- 增强Excel的SUM()函数:实现求和前非数据项的预筛查
- ES6 —(Generator 函数应用)
- Android学习心得(四) 关于Android studio的更新
- ubuntu安装NS3
- 史上最全的正则表达式-匹配中英文、字母和数字
- Unity 3D
- 贪心算法1(python)
- 基于libsvm的高光谱影像分类
- hdu 6077