Nhờ Anh/chị chỉ giúp em công thức gom số phiếu thu?

Liên hệ QC

danhculao

Thành viên hoạt động
Tham gia
26/9/16
Bài viết
147
Được thích
16
Chào các Anh/chị!
Em nhờ các Anh/chị chỉ giúp em công thức gom: một người nộp tiền cùng một ngày thành một số phiếu thu ạ. Em có gửi kèm file
Nhờ các Anh/chị chỉ giúp, Em cám ơn ạ!
 

File đính kèm

  • CongThucPT.xlsx
    11 KB · Đọc: 14
Chào các Anh/chị!
Em nhờ các Anh/chị chỉ giúp em công thức gom: một người nộp tiền cùng một ngày thành một số phiếu thu ạ. Em có gửi kèm file
Nhờ các Anh/chị chỉ giúp, Em cám ơn ạ!
Tôi thấy bài của bạn làm pivot table thì hợp lý hơn. Vừa nhanh vừa gọn.
 

File đính kèm

  • CongThucPT (1).xlsx
    15.8 KB · Đọc: 3
Không làm pivot table được anh/chị ạ, vì em dùng sheet excel này upload vào chương trình phần mềm nên nếu dùng pivot table không upload vào được ạ. Nhờ anh/chị chỉ giúp em công thức ạ
 
Chào các Anh/chị!
Em nhờ các Anh/chị chỉ giúp em công thức gom: một người nộp tiền cùng một ngày thành một số phiếu thu ạ. Em có gửi kèm file
Nhờ các Anh/chị chỉ giúp, Em cám ơn ạ!
VBA dùng không bạn.
Mã:
Sub ketqua()
Dim arr, arr1
Dim dic As Object
Dim a As Long, i As Long, j As Long, lr As Long, b As Long, c As Long
Dim dk As String
Set dic = CreateObject("scripting.dictionary")
With Sheet1
     lr = .Range("B" & Rows.Count).End(xlUp).Row
     If lr < 10 Then MsgBox "khong co du lieu": Exit Sub
     arr = .Range("A10:e" & lr).Value
     ReDim arr1(1 To UBound(arr, 1), 1 To 6)
     For i = 1 To UBound(arr, 1)
     dk = arr(i, 1) & " # " & arr(i, 3) & " & " & arr(i, 5)
         If dic.exists(dk) = 0 Then
            a = a + 1
            arr1(a, 1) = a
            For j = 2 To 6
               arr1(a, j) = arr(i, j - 1)
            Next j
            dic.Item(dk) = Array(a)
        Else
           b = dic.Item(dk)(0)
           arr1(b, 3) = arr1(b, 3) + arr(i, 2)
        End If
    Next i
     c = .Range("G" & Rows.Count).End(xlUp).Row
     If c > 9 Then .Range("G10:L" & c).ClearContents
    .Range("G10").Resize(a, 6).Value = arr1
End With
End Sub
 

File đính kèm

  • CongThucPT (2).xlsm
    11 KB · Đọc: 12
Lần chỉnh sửa cuối:
Dạ, sao em nhập tiếp thử sao không được ạ?
 
VBA dùng không bạn.
Mã:
Sub ketqua()
Dim arr, arr1
Dim dic As Object
Dim a As Long, i As Long, j As Long, lr As Long, b As Long, c As Long
Dim dk As String
Set dic = CreateObject("scripting.dictionary")
With Sheet1
     lr = .Range("B" & Rows.Count).End(xlUp).Row
     If lr < 10 Then MsgBox "khong co du lieu": Exit Sub
     arr = .Range("A10:e" & lr).Value
     ReDim arr1(1 To UBound(arr, 1), 1 To 6)
     For i = 1 To UBound(arr, 1)
     dk = arr(i, 1) & " # " & arr(i, 3) & " & " & arr(i, 5)
         If dic.exists(dk) = 0 Then
            a = a + 1
            arr1(a, 1) = a
            For j = 2 To 6
               arr1(a, j) = arr(i, j - 1)
            Next j
            dic.Item(dk) = Array(a)
        Else
           b = dic.Item(dk)(0)
           arr1(b, 3) = arr1(b, 3) + arr(i, 2)
        End If
    Next i
     c = .Range("G" & Rows.Count).End(xlUp).Row
     If c > 9 Then .Range("G10:L" & c).ClearContents
    .Range("G10").Resize(a, 6).Value = arr1
End With
End Sub
Theo mình hiểu: cột C chưa có, cần kết quả giống y chang cột C
 
Dạ, đúng rồi ạ. Nhờ anh HieuCD chỉ giúp em ạ
Bài đã được tự động gộp:


Dạ, cột C là cột chưa có gì. Đó là cột cho kết quả ạ
Cần làm rỏ 2 vấn đề:
1/ số thứ tự mỗi tháng đánh lại từ 0001 ?
2/ 2 ký tự đầu: khi nào là BC khi nào là BN ?
 
Cần làm rỏ 2 vấn đề:
1/ số thứ tự mỗi tháng đánh lại từ 0001 ?
2/ 2 ký tự đầu: khi nào là BC khi nào là BN ?
Dạ, em xin làm rõ 2 vấn đề ạ:
1/ số thứ tự mỗi tháng sẽ đánh lại từ số 0001
2/ 2 ký tự đầu: khi thu tiền sẽ là BC, khi chi tiền sẽ là BN theo từng ngân hàng, em có 4 ngân hàng: BIDV, VCB, TPB, DAB. Cụ thể như kết quả ở cột D tiền vào BIDV sẽ cho kết quả: BCBIDV18120001
- BC: thu tiền
- BN: chi tiền
- BIDV, VCB, TPB, DAB: là ngân hàng
- 1812: năm tháng
- 0001: số chạy
Nhờ anh HieuCD chỉ giúp em với ạ. (Em gửi kèm lại file). Em cám ơn ạ!
 

File đính kèm

  • CongThucPT.xlsx
    11.5 KB · Đọc: 6
Dạ, em xin làm rõ 2 vấn đề ạ:
1/ số thứ tự mỗi tháng sẽ đánh lại từ số 0001
2/ 2 ký tự đầu: khi thu tiền sẽ là BC, khi chi tiền sẽ là BN theo từng ngân hàng, em có 4 ngân hàng: BIDV, VCB, TPB, DAB. Cụ thể như kết quả ở cột D tiền vào BIDV sẽ cho kết quả: BCBIDV18120001
- BC: thu tiền
- BN: chi tiền
- BIDV, VCB, TPB, DAB: là ngân hàng
- 1812: năm tháng
- 0001: số chạy
Nhờ anh HieuCD chỉ giúp em với ạ. (Em gửi kèm lại file). Em cám ơn ạ!
Dữ liệu ít thì dùng công thức Excel
 

File đính kèm

  • CongThucPT (1).xlsx
    22.4 KB · Đọc: 9
Dữ liệu ít thì dùng công thức Excel
Dạ,
Tổng 1 ngày của người nộp tiền/nhận tiền là: cùng 1 số phiếu thu/chi trong ngày đó, nhưng qua ngày tiếp là số nhảy tiếp, chứ không phải gom chung vào phiếu BCBIDV1812001 ạ.
Nhờ anh HieuCD chỉ lại giúp em ạ.
Em cám ơn !
 
Lần chỉnh sửa cuối:
Gữ liệu nhiều thì nhờ bạn @snow25 viết code VBA :)
Dạ,
Tổng 1 ngày của người nộp tiền/nhận tiền là: cùng 1 số phiếu thu/chi trong ngày đó, nhưng qua ngày tiếp là số nhảy tiếp, chứ không phải gom chung vào phiếu BCBIDV1812001 ạ.
Nhờ anh HieuCD chỉ lại giúp em ạ.
Em cám ơn !
 

File đính kèm

  • CongThucPT.xlsx
    172 KB · Đọc: 4
Dạ,
Tổng 1 ngày của người nộp tiền/nhận tiền là: cùng 1 số phiếu thu/chi trong ngày đó, nhưng qua ngày tiếp là số nhảy tiếp, chứ không phải gom chung vào phiếu BCBIDV1812001 ạ.
Nhờ anh HieuCD chỉ lại giúp em ạ.
Em cám ơn !
Nhầm lẫn tai hại :confused:
Chỉnh lại công thức ô D3
Mã:
=IFERROR(LOOKUP(2,1/(MID($E$2:E2,6,3)=MID($E$2:E2,6,3))/($B$2:B2=B3)/($F$2:F2=F3),$D$2:D3),IF(MID(E3,6,3)="Thu","BC","BN")&O3&TEXT(B3,"yymm")&TEXT(MAX(INDEX(RIGHT($D$2:D2,4)*(MID($E$2:E2,6,3)=MID(E3,6,3))*(TEXT($B$2:B2,"yymm")=TEXT(B3,"yymm")),))+1,"0000"))
 

File đính kèm

  • CongThucPT (2).xlsx
    179.1 KB · Đọc: 3
Nhầm lẫn tai hại :confused:
Chỉnh lại công thức ô D3
Mã:
=IFERROR(LOOKUP(2,1/(MID($E$2:E2,6,3)=MID($E$2:E2,6,3))/($B$2:B2=B3)/($F$2:F2=F3),$D$2:D3),IF(MID(E3,6,3)="Thu","BC","BN")&O3&TEXT(B3,"yymm")&TEXT(MAX(INDEX(RIGHT($D$2:D2,4)*(MID($E$2:E2,6,3)=MID(E3,6,3))*(TEXT($B$2:B2,"yymm")=TEXT(B3,"yymm")),))+1,"0000"))
Dạ, được rồi ạ, Cám ơn anh HieuCD nhiều ạ
 
Web KT
Back
Top Bottom