在条件列中添加值

时间:2014-04-24 00:15:32

标签: excel excel-vba excel-formula excel-2007 vba

作为初学者和第一次访问本网站,我非常感谢您的帮助。

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

SO23257561 example

从我的表中我只想添加不包含零的前三列。如果前三个零为零,请检查下一列并将其添加以再次完成三列而没有零值。有些功能类似于Col H TOTAL OF FIRST 3 WEEKS <>0(我必须手动完成)。

如果我可以学习一组VB代码或任何带有公式或宏的示例,那么非常感谢你。我正在使用Excel 2007。

2 个答案:

答案 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"))))))

请注意,如果少于三个非零值,则可以正常工作。