|A|B|C|D|E|F|G|
|3|5|0|4|0|9|6|
我想计算动态计数值,如果值为0则不计数。
实施例
计数2时间范围A1-G1结果为5.
计算3个时间范围A1-G1结果为4.
计算4个时间范围A1-G1结果为9。
如何在excel中编码。
答案 0 :(得分:0)
您可以使用INDEX
功能移动一系列值:
=IF(INDEX(A1:G1,0,A4)=0,INDEX(A1:G1,0,A4+1),INDEX(A1:G1,0,A4))
其中A4
是计数。 然而如果范围的结果是0,它将移动到下一个,这只适用于0的单个实例。所以一个接一个将导致0。
更完整的证明解决方案是使用VBA,这是一个自定义功能:
Public Function DynamicResult(ByVal Rng As Range, ByVal Count As Integer) As Integer
Dim i As Integer: i = 1
For Each cell In Rng
If (i = Count) Then
If cell > 0 Then
DynamicResult = cell
Else
Count = Count + 1
End If
End If
i = i + 1
Next cell
End Function
如果将此代码粘贴到VBA模块中,您可以像这样使用它:
=DynamicResult(A1:G1,7)
答案 1 :(得分:0)