Tổng hợp doanh số cho vay giữa các sheet trong Excel (1 người xem)

Người dùng đang xem chủ đề này

Tôi tuân thủ nội quy khi đăng bài
Có

hoangthethuongneu

Thành viên mới
Tham gia
19/1/17
Bài viết
3
Được thích
0
Em có file dữ liệu đính kèm, Xin nhờ các anh/chị giúp đỡ ạ:
- Lấy dữ liệu từ các sheet "Nhập vay"; "Nhập LC"; "DL Phát hành" để tổng hợp doanh số giải ngân, phát hành LC, Phát hành bảo lãnh theo năm và theo đơn vị tiền tệ tại Sheet "Nhập Dư nợ"
- Tại Sheet "Đề xuất GN" Khi chọn Giải ngân tạm ứng là "Không" tại ô G75 thì tự động hide dòng 188 của sheet đó, còn nếu "có" thì unhide
Em cảm ơn ạ
 

File đính kèm

Giải ngân tạm ứng là "Không" tại ô G75 thì tự động hide dòng 188
Câu 1: Không làm trong lãnh vực tài chánh, nên không hiểu thuật ngữ chuyên ...
Câu 2: Nghiên cứu đoạn code sau :
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Range("g75") = "Không" Then
        Range("188:188").EntireRow.Hidden = True
    Else
        Range("188:188").EntireRow.Hidden = False
    End If
End Sub
 
Câu 1: Không làm trong lãnh vực tài chánh, nên không hiểu thuật ngữ chuyên ...
Câu 2: Nghiên cứu đoạn code sau :
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Range("g75") = "Không" Then
        Range("188:188").EntireRow.Hidden = True
    Else
        Range("188:188").EntireRow.Hidden = False
    End If
End Sub
Em cảm ơn bác ạ, Câu 1 thì nhu cầu đơn giản là e muốn lấy tổng số tiền theo năm (có phân biệt loại tiền) ở các sheet nhập liệu để đưa vào bảng tổng hợp thay vì phải làm sum. Bảng nhập liệu sẽ tiếp tục được nhập liệu bổ sung ạ
 
đưa vào bảng tổng hợp thay vì phải làm sum.
Thử clean với Sheet Nhập Vay, bằng QUERY trước khi Tổng hợp, phát hiện nhiều dòng lỗi nhập liệu cụ thể:

Lỗi nhập liệu:
dòng 2245; 24/4/223; tạm sửa 24/4/2023
2017 VND dòng 6391 sai định dạng $
... nhiều hạt sạn cơ bản như: 2025 USD dư 1 khoảng trống vv...

Tự chỉnh lại lỗi tại sheet Nhập Vay,
Click fải vùng xanh lá sheet2; refresh...
 

File đính kèm

Lần chỉnh sửa cuối:
Thử clean với Sheet Nhập Vay, bằng QUERY trước khi Tổng hợp, phát hiện nhiều dòng lỗi nhập liệu cụ thể:

Lỗi nhập liệu:
dòng 2245; 24/4/223; tạm sửa 24/4/2023
2017 VND dòng 6391 sai định dạng $
... nhiều hạt sạn cơ bản như: 2025 USD dư 1 khoảng trống vv...

Tự chỉnh lại lỗi tại sheet Nhập Vay,
Click fải vùng xanh lá sheet2; refresh...
Em cảm ơn ạ, năm 2026, e kéo thủ công thì ra 20.065.354,85 USD, nhưng e làm kiểu gì nó vẫn ra số 19.715.456,05 (giống bảng của anh), e cũng ngồi rà dữ liệu nhập nhưng ko thấy sai gì. Không hiểu lỗi ở đâu
 
Không hiểu lỗi ở đâu ?!!
 

File đính kèm

  • 123.jpg
    123.jpg
    24.3 KB · Đọc: 10
Lần chỉnh sửa cuối:
Em có file dữ liệu đính kèm, Xin nhờ các anh/chị giúp đỡ ạ:
- Lấy dữ liệu từ các sheet "Nhập vay"; "Nhập LC"; "DL Phát hành" để tổng hợp doanh số giải ngân, phát hành LC, Phát hành bảo lãnh theo năm và theo đơn vị tiền tệ tại Sheet "Nhập Dư nợ"
- Tại Sheet "Đề xuất GN" Khi chọn Giải ngân tạm ứng là "Không" tại ô G75 thì tự động hide dòng 188 của sheet đó, còn nếu "có" thì unhide
Em cảm ơn ạ
Yêu cầu 1:
copy code sau và dán vào sheet5, code sẽ cập nhật dữ liệu khi mở sheet
Mã:
Private Sub Worksheet_Activate()
  Call xyz
End Sub
Mã:
Code cập nhật dữ liệu
Mã:
Option Explicit
Option Compare Text

Sub xyz()
  Dim arr(), res#(1 To 11, 1 To 1), sR&, i&, k&, tmp$
  Const nam = 2026 'Nam tong hop du lieu
 
  i = Sheet3.Range("D1048000").End(xlUp).Row 'Sheet3: Sheet "NhapVay"
  If i > 5 Then
    arr = Sheet3.Range("B6:D" & i).Value
    sR = UBound(arr)
    For i = 1 To sR
      If Year(arr(i, 1)) = nam Then
        If Trim(arr(i, 3)) = "USD" Then k = 1 Else k = 2
        res(k, 1) = res(k, 1) + arr(i, 2)
      End If
    Next i
  End If

  i = Sheet18.Range("D1048000").End(xlUp).Row 'Sheet18: Sheet "DL Phát hành"
  If i > 3 Then
    arr = Sheet18.Range("B4:D" & i).Value
    sR = UBound(arr)
    For i = 1 To sR
      If Year(arr(i, 1)) = nam Then
        tmp = Trim(arr(i, 3))
        If tmp Like "B?o lãnh Thanh toán" Then
          res(4, 1) = res(4, 1) + arr(i, 2)
        ElseIf tmp Like "B?o lãnh Th?c hi?n h?p ??ng" Then
          res(5, 1) = res(5, 1) + arr(i, 2)
        ElseIf tmp Like "B?o lãnh t?m ?ng" Then
          res(6, 1) = res(6, 1) + arr(i, 2)
        ElseIf tmp Like "B?o lãnh D? th?u" Then
          res(7, 1) = res(7, 1) + arr(i, 2)
        ElseIf tmp Like "B?o lãnh b?o hành" Then
          res(8, 1) = res(8, 1) + arr(i, 2)
        Else
          arr(i, 2) = 0
        End If
        res(3, 1) = res(3, 1) + arr(i, 2)
      End If
    Next i
  End If
 
  i = Sheet7.Range("B1048000").End(xlUp).Row 'Sheet7: Sheet "Nh?p LC"
  If i > 5 Then
    arr = Sheet7.Range("B6:E" & i).Value
    sR = UBound(arr)
    For i = 1 To sR
      If Year(arr(i, 1)) = nam Then
        res(9, 1) = res(9, 1) + arr(i, 2)
      End If
    Next i
  End If
  Sheet5.Range("B4:B14").Value = res 'Sheet5: Sheet "Nh?p Du n?"
End Sub
Yêu cầu 2:
Code trong sheet1
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("G75")) Is Nothing Then
    If Target.Value = "Không" Then
      Rows(188).EntireRow.Hidden = True
    Else
      Rows(188).EntireRow.Hidden = False
    End If
  End If
End Sub
Mã:
 

File đính kèm

Chào bạn @hoangthethuongneu, mình cũng hay tổng hợp số liệu cho vay kiểu này nên góp thêm cách làm bằng công thức thuần, không cần VBA. Cái chênh lệch giữa số bạn kéo tay và số công thức tính ra gần như chắc chắn do dữ liệu đầu vào chưa sạch — như bác DeTong đã chỉ ra: ngày gõ sai thành 24/4/223, cột số tiền lẫn ô dạng text ("2017 VND"), cột loại tiền thừa dấu cách ("2025 USD"). Những dòng này khi lọc theo năm hoặc theo loại tiền sẽ bị rớt ra ngoài, nên tổng công thức nhỏ hơn tổng kéo tay.

Cách mình làm:
1. Làm sạch trước: TRIM() cột loại tiền/đơn vị để hết khoảng trắng thừa; sửa các ngày sai năm; cột số tiền phải là số thực sự — ô nào lẫn chữ thì tách hoặc sửa tay, vì SUMIFS sẽ bỏ qua ô text.
2. Tổng hợp theo năm + loại tiền + đơn vị bằng SUMIFS. Ví dụ tổng giải ngân USD năm 2026 ở sheet Nhập vay (giả sử A là cột ngày, C là cột số tiền, D là cột loại tiền):
=SUMIFS('Nhập vay'!$C:$C,'Nhập vay'!$A:$A,">="&DATE(2026,1,1),'Nhập vay'!$A:$A,"<="&DATE(2026,12,31),'Nhập vay'!$D:$D,"USD")
Bạn thay A/C/D bằng đúng cột ngày, số tiền, loại tiền/đơn vị trong file của mình; muốn thêm điều kiện đơn vị thì thêm một cặp vùng/điều kiện nữa.
3. Muốn gộp cả 3 sheet ("Nhập vay", "Nhập LC", "DL Phát hành") thì cộng 3 công thức SUMIFS lại với nhau, hoặc dùng Power Query Append 3 bảng thành 1 bảng rồi Pivot — cách này về lâu dài nhàn hơn nhiều vì có dữ liệu mới chỉ cần Refresh.

Mấy lỗi mình hay gặp khi tổng hợp kiểu này: số lưu dạng text (ô có dấu nháy xanh ở góc, căn trái) thì SUMIFS bỏ qua; ngày tháng gõ sai năm; loại tiền viết không nhất quán ("USD" và "USD " thừa cách Excel coi là khác nhau). Làm sạch 3 chỗ này là số khớp ngay.
 

Bài viết mới nhất

Back
Top Bottom