在具有条件的列中添加值

作为初学者和第一次在这个网站,我真的感谢你的帮助。

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

SO23257561的例子

从我的表我想只添加不包含零的前三列。 如果前三个数字为零,请检查下一列,并将其添加到三个列中,并且没有零值。 一些function,如在TOTAL OF FIRST 3 WEEKS <>0 (我必须手动)。

如果我可以学习一套VB代码或任何公式或macros的例子,非常感谢你。 我正在使用Excel 2007。

这是Ali M指的复杂的公式。 这是一个数组公式input与ctrlshiftinput

 =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