求excel公式 一列数字里有正数和负数 我想要这一列连续出现正数最多的数目和他们的和 负数也是一样就像这样A列-25-5-10-5-523-5-5561011自己算的话最多连续出现正数4个 32最多连续出现负数4个 -
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/03 01:01:07
![求excel公式 一列数字里有正数和负数 我想要这一列连续出现正数最多的数目和他们的和 负数也是一样就像这样A列-25-5-10-5-523-5-5561011自己算的话最多连续出现正数4个 32最多连续出现负数4个 -](/uploads/image/z/1001004-60-4.jpg?t=%E6%B1%82excel%E5%85%AC%E5%BC%8F+%E4%B8%80%E5%88%97%E6%95%B0%E5%AD%97%E9%87%8C%E6%9C%89%E6%AD%A3%E6%95%B0%E5%92%8C%E8%B4%9F%E6%95%B0+%E6%88%91%E6%83%B3%E8%A6%81%E8%BF%99%E4%B8%80%E5%88%97%E8%BF%9E%E7%BB%AD%E5%87%BA%E7%8E%B0%E6%AD%A3%E6%95%B0%E6%9C%80%E5%A4%9A%E7%9A%84%E6%95%B0%E7%9B%AE%E5%92%8C%E4%BB%96%E4%BB%AC%E7%9A%84%E5%92%8C+%E8%B4%9F%E6%95%B0%E4%B9%9F%E6%98%AF%E4%B8%80%E6%A0%B7%E5%B0%B1%E5%83%8F%E8%BF%99%E6%A0%B7A%E5%88%97-25-5-10-5-523-5-5561011%E8%87%AA%E5%B7%B1%E7%AE%97%E7%9A%84%E8%AF%9D%E6%9C%80%E5%A4%9A%E8%BF%9E%E7%BB%AD%E5%87%BA%E7%8E%B0%E6%AD%A3%E6%95%B04%E4%B8%AA+32%E6%9C%80%E5%A4%9A%E8%BF%9E%E7%BB%AD%E5%87%BA%E7%8E%B0%E8%B4%9F%E6%95%B04%E4%B8%AA+-)
求excel公式 一列数字里有正数和负数 我想要这一列连续出现正数最多的数目和他们的和 负数也是一样就像这样A列-25-5-10-5-523-5-5561011自己算的话最多连续出现正数4个 32最多连续出现负数4个 -
求excel公式 一列数字里有正数和负数 我想要这一列连续出现正数最多的数目和他们的和 负数也是一样
就像这样
A列
-2
5
-5
-10
-5
-5
2
3
-5
-5
5
6
10
11
自己算的话
最多连续出现正数4个 32
最多连续出现负数4个 -25
要求:用数组公式或者是VBA直接算出以上结果 最主要的是能求出他们的和 也就是32和-25
求excel公式 一列数字里有正数和负数 我想要这一列连续出现正数最多的数目和他们的和 负数也是一样就像这样A列-25-5-10-5-523-5-5561011自己算的话最多连续出现正数4个 32最多连续出现负数4个 -
给你做了一段宏命令,代码如下,拷进去试一下,在运行前,做好备份并确保欲计算的表格处于活动状态:
Sub JianCe()
Dim SUMz As Double
Dim SUMf As Double
Dim K As Single
Dim KZmax As Single
Dim KFmax As Single
Dim KZ As Single
Dim KF As Single
Dim SUMzEND As Single
Dim SUMfEND As Single
K = 2
Do While ActiveSheet.Cells(K - 1,1) ""
If Val(ActiveSheet.Cells(K - 1,1)) > 0 Then
SUMz = SUMz + Val(ActiveSheet.Cells(K - 1,1))
KZ = KZ + 1
ElseIf Val(ActiveSheet.Cells(K - 1,1)) < 0 Then
SUMf = SUMf + Val(ActiveSheet.Cells(K - 1,1))
KF = KF + 1
End If
If Val(ActiveSheet.Cells(K - 1,1)) * Val(ActiveSheet.Cells(K,1)) KZmax Then
KZmax = KZ
SUMzEND = SUMz
Else
KZ = 0
SUMz = 0
End If
If KF > KFmax Then
KFmax = KF
SUMfEND = SUMf
Else
KF = 0
SUMf = 0
End If
End If
K = K + 1
Loop
ActiveSheet.Cells(14,2) = "连续正数个数"
ActiveSheet.Cells(14,3) = "连续正数合"
ActiveSheet.Cells(14,4) = "连续负数个数"
ActiveSheet.Cells(14,5) = "连续负数合"
ActiveSheet.Cells(15,2) = KZmax
ActiveSheet.Cells(15,3) = SUMzEND
ActiveSheet.Cells(15,4) = KFmax
ActiveSheet.Cells(15,5) = SUMfEND
End Sub
以上代码比较啰嗦,没想出更好的办法,期待高手有更好的办法.最后结果放在第14、15行中的第2到第五列中,通过调整代码,可以调整位置.如果有要求,也可以对出现频次高的位置进行高亮显示,需要加入相关代码,当然也可以通过增加代码对任意列进行类似运算,该段命令运算截至是以最末一行出现的空单元格为标志的,请确保最后一行为空单元格,或修改相关代码避免此类问题出现.另外,此代码未解决相同频率的数值的选择问题,不知道你准备如何取舍,还是都要求显现出来.