在具有条件的列中添加值
作为初学者和第一次在这个网站,我真的感谢你的帮助。
WK 1 WK 2 WK 3 WK 4 WK 5 TOTAL HOURS TOTAL OF FIRST 3 WEEKS <> 0
约翰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
从我的表我想只添加不包含零的前三列。 如果前三个数字为零,请检查下一列,并将其添加到三个列中,并且没有零值。 一些function,如在TOTAL OF FIRST 3 WEEKS <>0
(我必须手动)。
如果我可以学习一套VB代码或任何公式或macros的例子,非常感谢你。 我正在使用Excel 2007。
这是Ali M指的复杂的公式。 这是一个数组公式input与ctrl – shift – input :
=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"))))))
请注意,如果有less于三个非零值,它将起作用。
你可以使用公式,但它会很复杂。 相反,你可以使用这个子程序,只要你想要的行为!
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