Excel : Cộng những ô cho tới khi gặp ô trống

Giả sử bạn có một cột dữ liệu và muốn tính tổng ở từng phần trong cột cho tới khi gặp một ô trống .

Ví dụ như hình dưới

 

\"\"

 

Những ô màu vàng là ô trống , sau đó kết quả tổng được chèn vào .

Tuy nhiên giải pháp trên là rất khó bạn phải dùng  macro có nội dung như sau :

 

Sub InsertTotals()

    Dim xRg As Range

    Dim i, j, StartRow, StartCol As Integer

    Dim xTxt As String

    On Error Resume Next

    xTxt = ActiveWindow.RangeSelection.AddressLocal

    Set xRg = Application.InputBox(\"please select the cells:\", \" \", xTxt, , , , , 8)

    If xRg Is Nothing Then Exit Sub

    StartRow = xRg.Row

    StartCol = xRg.Column

    For i = StartCol To xRg.Columns.Count + StartCol - 1

        For j = xRg.Row To xRg.Rows.Count + StartRow - 1

            If Cells(j, i) = \"\" Then

                Cells(j, i).Formula = \"=SUM(\" & Cells(StartRow, i).Address & \":\" & Cells(j - 1, i).Address & \")\"

                StartRow = j + 1

            End If

        Next

        StartRow = xRg.Row

    Next

End Sub

 

Khi chạy macro này bạn sẽ được yêu cầu chọn khu vực dữ liệu muốn tính

 

\"\"

 

Khi ấy bạn sẽ được kết quả như hình dưới

 

\"\"

 

Bạn cũng có thể có một giải pháp khác như hình dưới với công thức mảng và kết quả trả về cột bên cạnh

 

\"\"

 

Với công thức mảng

=IF(D1=\"\",SUM(D1:INDEX(D1:$D$17,MATCH(TRUE,(D2:$D$17=\"\"),0))),\"\")

Rồi bấm tổ hợp phím Ctrl+Shift+Enter để thành công thức mảng rồi dùng tính năng Fill_Hand để kéo

Với công thức trên D1 và D2 là hai ô đầu tiên của cột và D17 là ô trống cuối cùng trong cột số .