作为初学者和第一次访问本网站,我非常感谢您的帮助。
WK 1 WK 2 WK 3 WK 4 WK 5 TOTAL HOURS TOTAL OF FIRST 3 WEEKS <> 0
John 10 0 5 6 5 26 21
史密斯4 1 10 3 4 22 15 彼得0 4 4 4 2 14 12苏珊5 5 0 5 8 23 15
从我的表中我只想添加不包含零的前三列。如果前三个零为零,请检查下一列并将其添加以再次完成三列而没有零值。有些功能类似于Col H TOTAL OF FIRST 3 WEEKS <>0
(我必须手动完成)。
如果我可以学习一组VB代码或任何带有公式或宏的示例,那么非常感谢你。我正在使用Excel 2007。
答案 0 :(得分:1)
你可以使用公式,但它会很复杂。相反,你可以使用这个完全符合你想要的子程序!
Public Sub y()
Dim i, sum, c As Integer
Dim Rng, Row, cell As Range
Set Rng = Range("B2:F5")
i = 0
For Each Row In Rng.Rows
For Each cell In Row.Cells
If (cell.Value <> 0 And i < 3) Then
sum = sum + cell.Value
i = i + 1
End If
Next cell
Cells(Row.Row, 7).Value = sum
sum = 0
i = 0
Next Row
End Sub
它总是将总和放在H列中。您可以通过更改此行来更改它:
Cells(Row.Row, 7).Value = sum
答案 1 :(得分:1)
这是Ali M所指的复杂公式。它是用 ctrl 输入的array formula - shift - 输入:
=IF(COUNTIF(A2:F2,"<>0")=0,0,SUM(A2:INDEX(A2:F2,SMALL(IF(A2:F2<>0,COLUMN(A2:F2),""),MIN(3,COUNTIF(A2:F2,"<>0"))))))
请注意,如果少于三个非零值,则可以正常工作。