hyfm.net
当前位置:首页 >> vBA数组多条件求和 >>

vBA数组多条件求和

Sub s() arr = [a1].CurrentRegion Set d = CreateObject("scripting.dictionary") k = 1 For i = 2 To UBound(arr) t = arr(i, 1) & arr(i, 2) If Not d.exists(t) Then k = k + 1 d(t) = k If k <> i Then arr(k, 1) = arr(i, 1) arr(k, 2) = arr(i, 2) arr(k, 3) = arr(i, 3) End If Else

用sumifs就可以嘛

Set arr = Range("b28:b40") 改为:Set arr = Range("b28:f40") 即可

1,用if 和 and 相连实现多条件,语句下面求和就行2,VBA可调用工作表函数,直接用Application.SUM()也行啊

不是太清楚你的要求, 我理解是:先将各工作表的A、B列数据存放在数组中(两个数组,一个存放姓名、另一个存放数量) 因为不知道有几个人,需要搜索、并列出人员名单. 然后按姓名计算个人的总和. 见附件. 不知是否是你要的. 但按我个人习惯,尽量不用数组,而直接把数据组写到单元格区域.因为: 【1】数组定义语句有很多限制,而单元格区域本身就是很好的动态数组; 【2】用数组存放数据,在宏运行结束数据不予保留; 【3】存放在单元格中可以使用工作表函数,工作表函数的运行速度远远超过VBA函数,在处理数据大(如上万行实验数据)时,就极其明显.

如图,F5=SUM(($B$4:$B$9=$E5)*($A$4:$A$9=F$4)*($C$4:$C$9)) (数组公式) 用这个就可以实现求和了 当然,用VBA也是可以做到的

sub mysum ()dim arr,x%,y%arr=range("A2:I11").valuecells(13,3).resize(1,2).clearcontentscells(14,3).clearcontentsfor x=1 to ubound(arr) step 2for y=2 to ubound(arr,2)if arr(x,1)="A" and arr(x,y)=0 then cells(13,3)=cells(13,3)+arr(x+1,y)elseif arr(x

如何用VBA实现多条件数据汇总 第一步、随意点击一个单元格,然后点击菜单栏里面的“数据选项”,“数据选项”这里有一个“数据工具”,里面有一个“合并求和”,可以使用这个工具进行操作;第二步、在新弹出的对话框里面选择“求和”,然后点击“浏览”工具,在“选择数据”里面选择需要的进行求和的数据,然后回车后点击“添加”;第三步、需要把“sheet”中的需要求和的数据都选定了,然后点击“确定”,就可以直接把需要的求和的数据表求和成功.

假设有A、B、C列为条件列.D列为求和列;先设置一辅助列,比如IV列 for i=startrow to endrow range("IV" & i)=range("A" & i) & "|" & range("B" & i) & "|" & range("C" & i) next i set RngCond=range("IV:IV") Set RngSum=range("D:D") 求和:application.worksheet.function.sumif(RngCond, "条件串",RngSum)

>=10℃那列改为"计入>=10℃",设置公式为if(and(月份>=6,月份<=9,温度>=10,温度,0),即如果温度大于等于10,显示温度,否则为0,.>=0℃那列同理,然后用数据透视表统计站点,年份,积温等.

网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com