Nhờ giúp đỡ tìm dữ liệu với 2 tham số sang 1 sheet mới (1 người xem)

  • Thread starter Thread starter eokakoe
  • Ngày gửi Ngày gửi
Liên hệ QC

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

eokakoe

Thành viên mới
Tham gia
16/8/10
Bài viết
33
Được thích
7
Em có file excel đã lược giản bớt cho nhẹ Mong nhờ các anh chị giúp đỡ.
Trong file em có 1 sheet mua bán trong đó có 2 field là Ngày và Tên.

Em muốn ở sheet chi tiết có thể lọc được 2 tham số là tháng và tên để cho ra những chi tiết còn lại.

Em biết trong diễn đàn chắc chắn có quá nhiều câu hỏi dạng như thế này nhưng vì kiến thức kém nên em không tìm ra. Em rất mong được giúp đỡ từ các anh chị dày dạn kinh nghiệm. EM xin cảm ơn.
 

File đính kèm

Lần chỉnh sửa cuối:
Em có file excel đã lược giản bớt cho nhẹ Mong nhờ các anh chị giúp đỡ.
Trong file em có 1 sheet mua bán trong đó có 2 field là Ngày và Tên.

Em muốn ở sheet chi tiết có thể lọc được 2 tham số là tháng và tên để cho ra những chi tiết còn lại.

Em biết trong diễn đàn chắc chắn có quá nhiều câu hỏi dạng như thế này nhưng vì kiến thức kém nên em không tìm ra. Em rất mong được giúp đỡ từ các anh chị dày dạn kinh nghiệm. EM xin cảm ơn.

Bạn xem file đính kèm nhé.
 

File đính kèm

Em có file excel đã lược giản bớt cho nhẹ Mong nhờ các anh chị giúp đỡ.
Trong file em có 1 sheet mua bán trong đó có 2 field là Ngày và Tên.

Em muốn ở sheet chi tiết có thể lọc được 2 tham số là tháng và tên để cho ra những chi tiết còn lại.

Em biết trong diễn đàn chắc chắn có quá nhiều câu hỏi dạng như thế này nhưng vì kiến thức kém nên em không tìm ra. Em rất mong được giúp đỡ từ các anh chị dày dạn kinh nghiệm. EM xin cảm ơn.

Việc tìm các topic tương tự trong diễn đàn cũng dễ thôi mà bạn. Bạn search trong GPE là thấy những tựa đề tương tự như mình thắc mắc.

Giải quyết cho bạn đề bài này:
Mã:
Public Sub GPE()
Dim Sarr(), dArr(), I As Long, J As Long, K As Long, Ten As String, Thang As Long
Thang = [C3].Value
Ten = UCase([C5])
With Sheets("muaban")
    Sarr = .Range(.[A6], .[A65000].End(xlUp)).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(Sarr, 1), 1 To 6)
For I = 1 To UBound(Sarr, 1)
    If UCase(Sarr(I, 2)) = Ten Then
        If Month(Sarr(I, 1)) = Thang Then
            K = K + 1: dArr(K, 1) = Sarr(I, 1)
            For J = 3 To 7
                dArr(K, J - 1) = Sarr(I, J)
            Next J
        End If
    End If
Next I
With Sheets("chitiet")
    .[A9:F10000].ClearContents
    .[A9:F10000].Borders.LineStyle = xlNone
    If K Then
        .[A9].Resize(K, 6).Value = dArr
        .[A9].Resize(K, 6).Borders.LineStyle = xlContinuous
    End If
End With
End Sub
Bạn xem file đính kèm
 

File đính kèm

Việc tìm các topic tương tự trong diễn đàn cũng dễ thôi mà bạn. Bạn search trong GPE là thấy những tựa đề tương tự như mình thắc mắc.

Giải quyết cho bạn đề bài này:
Mã:
Public Sub GPE()
Dim Sarr(), dArr(), I As Long, J As Long, K As Long, Ten As String, Thang As Long
Thang = [C3].Value
Ten = UCase([C5])
With Sheets("muaban")
    Sarr = .Range(.[A6], .[A65000].End(xlUp)).Resize(, 7).Value
End With
ReDim dArr(1 To UBound(Sarr, 1), 1 To 6)
For I = 1 To UBound(Sarr, 1)
    If UCase(Sarr(I, 2)) = Ten Then
        If Month(Sarr(I, 1)) = Thang Then
            K = K + 1: dArr(K, 1) = Sarr(I, 1)
            For J = 3 To 7
                dArr(K, J - 1) = Sarr(I, J)
            Next J
        End If
    End If
Next I
With Sheets("chitiet")
    .[A9:F10000].ClearContents
    .[A9:F10000].Borders.LineStyle = xlNone
    If K Then
        .[A9].Resize(K, 6).Value = dArr
        .[A9].Resize(K, 6).Borders.LineStyle = xlContinuous
    End If
End With
End Sub
Bạn xem file đính kèm

cô nàng thơ này không những có thơ hay mà còn có code hay nữa nha, bài này công thức cũng sơ được mà đâu cần dùng tới code đâu, không biết là Em (hay là Đệ tử ) của Anh QuanHai nữa {toàn sử dụng dao phay để Chém Kiến} hic
 
Lần chỉnh sửa cuối:
cô nàng thơ này không những có thơ hay mà còn có code hay nữa nha, bài này công thức cũng sơ được mà đâu cần dùng tới code đâu, không biết là Em (hay là Đệ tử ) của Anh QuanHai nữa {toàn sử dụng dao phai để giết kiến} hic

Hic hic. Mỗi một đề bài có nhiều cách giải quyết khác nhau mà, có thể dùng được công thức hoặc dùng code. Nên mình trả lời theo cách hiểu và cách làm của mình. Mình còn phải học thêm nhiều ở các thành viên GPE.
Mong là các thành viên khác có cách giải quyết bằng công thức hay cách nào khác nữa thì cũng cứ trả lời cho bạn ấy, mình cũng được học hỏi thêm.

Mình cũng không so sánh dùng code hay công thức thì cái nào là dao phay hay ...dao con. hihi. Mỗi cách giải quyết cũng có ưu điểm riêng của nó mà.
 
Lần chỉnh sửa cuối:
Hic hic. Mỗi một đề bài có nhiều cách giải quyết khác nhau mà, có thể dùng được công thức hoặc dùng code. Nên mình trả lời theo cách hiểu và cách làm của mình. Mình còn phải học thêm nhiều ở các thành viên GPE.
Mong là các thành viên khác có cách giải quyết bằng công thức hay cách nào khác nữa thì cũng cứ trả lời cho bạn ấy, mình cũng được học hỏi thêm.

Mình cũng không so sánh dùng code hay công thức thì cái nào là dao phay hay ...dao con. hihi. Mỗi cách giải quyết cũng có ưu điểm riêng của nó mà.
Muốn làm kiểu công thức thì xem file này, Nếu dữ liệu sheet muaban chứa cả chục ngàn dòng (Mỗi ngày vài chục dòng trong cả năm) thì bị "Rùa" là chắc.
 

File đính kèm

Đúng là em muốn dùng công thức vì không có kiến thức gì vì VBA. Nhưng anh Ba Tê nói vậy chắc em hết dám xài luôn vì đúng là dữ liệu của em nhiều, mỗi ngày 20-30 dòng. Hichic.
2 file của anh mhung05 và chị xuan.nguyen82 em rất đúng ý em. Em xin cảm ơn
 
Hic hic. Mỗi một đề bài có nhiều cách giải quyết khác nhau mà, có thể dùng được công thức hoặc dùng code. Nên mình trả lời theo cách hiểu và cách làm của mình. Mình còn phải học thêm nhiều ở các thành viên GPE.
Mong là các thành viên khác có cách giải quyết bằng công thức hay cách nào khác nữa thì cũng cứ trả lời cho bạn ấy, mình cũng được học hỏi thêm.

Mình cũng không so sánh dùng code hay công thức thì cái nào là dao phay hay ...dao con. hihi. Mỗi cách giải quyết cũng có ưu điểm riêng của nó mà.

Chỉ đúng với một số truờng hợp. Trên thực tế sỡ dĩ bạn thấy code tiện hơn là vì một số đông các bài hỏi trên đây đi ngược nguyên tắc bảng tính Excel. Tức là người ta bắt đầu giải quyết vấn đề sau khi dữ liệu đã ghi vào bảng tính. Theo nguyên tắc, bắt đầu giải quyết vấn đề phải từ lúc thiết kế bảng tính, thiết kế như thế nào để dữ liệu dễ kiểm soát thay vì để nhìn cho đẹp, cho giống với mẫu mã thường dùng (những người theo mẫu mã quên rằng những mẫu mã kia được đặt ra từ thời chưa có bảng tính). Lắm lúc bạn thấy người hỏi đưa bài lên, nhận câu trả lời xong rồi trở lại "thêm chút nữa...". Điều này chứng tỏ họ khởi đầu chẳng biết mình thực sự muốn gì, đến chừng nhìn dữ liệu sau khi đã vào đúng chỗ rồi mới nhận ra mục đích cuối. Đối với những người này, dùng code là tự sát.

Sau khi đã thiết kế đúng đắn, nếu hàm không quá phức tạp, và nếu bảng tính không quá nhiếu dữ liệu thì dùng hàm luôn luôn tốt hơn code VBA. Ngược lại, VBA tốt hơn.

Những lời tôi nói trên không áp dụng cho trường hợp dữ liệu đổ (download, import) từ nguồn khác. Dữ liệu từ nguồn khác như thế này được liệt vào dạng thô. Trong các truờng hợp liên quan đến dời dữ liệu thô vào bảng đã thiết kế chuẩn thì code luôn luôn có nhiều lợi điểm hơn.
 
Vì dùng VBA nên em không biết tùy biến sao cho hợp với file của mình. Em rất mong chị Xuan Nguyen giúp em lần nữa. Trong file này chị xem gium sheet chitiet giúp em. Em có để text box nhờ chị giúp. Em rất cám ơn chị.
 

File đính kèm

Vì dùng VBA nên em không biết tùy biến sao cho hợp với file của mình. Em rất mong chị Xuan Nguyen giúp em lần nữa. Trong file này chị xem gium sheet chitiet giúp em. Em có để text box nhờ chị giúp. Em rất cám ơn chị.

Chị cũng đã nghĩ đến trường hợp file thật của em với file em gửi lên có khác nhau hay không rồi. Hic, nếu cấu trúc như nhau chỉ là em giản lược dữ liệu thì OK, còn nếu mà cấu trúc bảng tính, yêu cầu điều kiện khác thì phải xem lại code, sửa cho phù hợp với yêu cầu của file.
 
Lần chỉnh sửa cuối:
Chỉ đúng với một số truờng hợp. Trên thực tế sỡ dĩ bạn thấy code tiện hơn là vì một số đông các bài hỏi trên đây đi ngược nguyên tắc bảng tính Excel. Tức là người ta bắt đầu giải quyết vấn đề sau khi dữ liệu đã ghi vào bảng tính. Theo nguyên tắc, bắt đầu giải quyết vấn đề phải từ lúc thiết kế bảng tính, thiết kế như thế nào để dữ liệu dễ kiểm soát thay vì để nhìn cho đẹp, cho giống với mẫu mã thường dùng (những người theo mẫu mã quên rằng những mẫu mã kia được đặt ra từ thời chưa có bảng tính). Lắm lúc bạn thấy người hỏi đưa bài lên, nhận câu trả lời xong rồi trở lại "thêm chút nữa...". Điều này chứng tỏ họ khởi đầu chẳng biết mình thực sự muốn gì, đến chừng nhìn dữ liệu sau khi đã vào đúng chỗ rồi mới nhận ra mục đích cuối. Đối với những người này, dùng code là tự sát.

Sau khi đã thiết kế đúng đắn, nếu hàm không quá phức tạp, và nếu bảng tính không quá nhiếu dữ liệu thì dùng hàm luôn luôn tốt hơn code VBA. Ngược lại, VBA tốt hơn.

Những lời tôi nói trên không áp dụng cho trường hợp dữ liệu đổ (download, import) từ nguồn khác. Dữ liệu từ nguồn khác như thế này được liệt vào dạng thô. Trong các truờng hợp liên quan đến dời dữ liệu thô vào bảng đã thiết kế chuẩn thì code luôn luôn có nhiều lợi điểm hơn.

Cảm ơn bạn!
Để giải quyết triệt để 1 vấn đề và giải quyết làm sao cho nó hợp lý nhất, hoàn thiện ngay từ đầu lại phụ thuộc vào dữ liệu và yêu cầu của nguời hỏi.
Với bảng tính dữ liệu lớn thì giải quyết bằng công thức mình thấy chậm, còn với dữ liệu đã sắp xếp khoa học, hệ thống thì như bạn nói câu mình đã tô đỏ ở trên là đúng. Dùng công thức là đáp ứng được rồi. Thậm chí có những đề bài dùng ứng dụng của Excel là có thể đáp ứng được yêu cầu, nhưng các bạn lại muốn hỏi về hàm hoặc code...Nói về vấn đề này nó rất rộng. Mình cũng cảm thấy khó mà nói hết được.

Vấn đề ở đây là: Các đề bài của chúng ta có những cấu trúc dữ liệu chưa được khoa học, khi đưa ra góp ý về dữ liệu thì để thiết kế lại dữ liệu chắc cũng mất khá nhiều thời gian, mà chắc gì sự góp ý của mình đã phù hợp với công việc và yêu cầu của họ.

Nếu đề bài đưa ra với dữ liệu chuẩn, thì khỏi cần nói gì rồi.

Hàm và code, mỗi thứ có 1 thế mạnh và ưu điểm riêng. Nếu hiểu hết về nó thì phát huy tối đa sức mạnh của nó. Mình thì kiến thức cũng còn hạn hẹp nên cũng chẳng phân tích được nhiều.

Rất cảm ơn ý kiến của bạn!
 
Vì dùng VBA nên em không biết tùy biến sao cho hợp với file của mình. Em rất mong chị Xuan Nguyen giúp em lần nữa. Trong file này chị xem gium sheet chitiet giúp em. Em có để text box nhờ chị giúp. Em rất cám ơn chị.

Chị đang làm cho em thì bận nên đợi tối chị hoàn thiện nhé. Tại cột Lãi chi của em đang không có dữ liệu.
 
Ý kiến của anh VietMini thực sự là rất quý báu và chính xác. Vì bản thân em thực sự là 1 tay mơ, kiến thức về excel rất mơ hồ. Chỉ học lỏm mỗi chỗ 1 tí mỗi chỗ 1 tí nên khả năng vận dụng linh hoạt rất kém. Em cũng hỏi rất nhiều và đúng là mỗi lần nhận 1 đoạn code xong lại không biết sử dụng thế nào cho đúng mục đích mình.

Nhưng vì em cũng làm việc khác, công việc này chỉ phụ giúp gia đình nên em cũng biết các anh chị cũng rất bận đâu ai có thể ngồi nghiên cứu yêu cầu của mình kỹ mà giải quyết được nên em luôn cố tìm cách đơn giản hóa vấn đề để hỏi rồi tự mình tùy biến theo ý mình chứ khó lòng trình bày đủ ý mình muốn lên diễn đàn. Không thể ngay từ khâu nhập dữ liệu đã hỏi em nên nhập thế nào rồi dòng này ra sao cột kia thế nào.... Thật sự là rất khó. Và em biết số đông các thành viên ở GPE cũng vậy. Để nghiên cứu kỹ càng cơ bản, tận gốc chắc mất rất nhiều thời gian. Nên em rất khâm phục sự nhẫn nại của các thành viên "lớn" của GPE khi kiên trì giải thích cho mấy thành phần "đầu đất" như em dù biết làm cho xong chắc gì nó đã sử dụng được :((
 
Chị Xuan Nguyen: Cột lãi đó em mới thêm vào. Vì để tính ra kết quả thì chỉ cần 1 cột lãi nhưng vì khi in ra em muốn rõ ràng 2 bên 1 bên tiền khách mua, và 1 bên tiền khách trả. và tương ứng là lãi của 2 bên đó. Kết quả cuối cùng sẽ bằng số dư tiền mua trừ tiền trả và lãi mua trừ lãi trả. Em để 2 cột như vậy để khách dễ so sánh các mã trả tiền và các mã mua hàng cho dễ so. Em vẫn đang xây dựng nên còn nhiều thiếu sót lắm :((
 
Ý kiến của anh VietMini thực sự là rất quý báu và chính xác. Vì bản thân em thực sự là 1 tay mơ, kiến thức về excel rất mơ hồ. Chỉ học lỏm mỗi chỗ 1 tí mỗi chỗ 1 tí nên khả năng vận dụng linh hoạt rất kém. Em cũng hỏi rất nhiều và đúng là mỗi lần nhận 1 đoạn code xong lại không biết sử dụng thế nào cho đúng mục đích mình.

Nhưng vì em cũng làm việc khác, công việc này chỉ phụ giúp gia đình nên em cũng biết các anh chị cũng rất bận đâu ai có thể ngồi nghiên cứu yêu cầu của mình kỹ mà giải quyết được nên em luôn cố tìm cách đơn giản hóa vấn đề để hỏi rồi tự mình tùy biến theo ý mình chứ khó lòng trình bày đủ ý mình muốn lên diễn đàn. Không thể ngay từ khâu nhập dữ liệu đã hỏi em nên nhập thế nào rồi dòng này ra sao cột kia thế nào.... Thật sự là rất khó. Và em biết số đông các thành viên ở GPE cũng vậy. Để nghiên cứu kỹ càng cơ bản, tận gốc chắc mất rất nhiều thời gian. Nên em rất khâm phục sự nhẫn nại của các thành viên "lớn" của GPE khi kiên trì giải thích cho mấy thành phần "đầu đất" như em dù biết làm cho xong chắc gì nó đã sử dụng được :((
Rốt cuộc là file ở bài #9 của bạn đã đầy đủ các yêu cầu chưa?
Có thêm điều kiện nào nữa không?
 
Tạm thời em chỉ cần như vậy. Trích xuất ra 1 bảng in để in thanh toán cho từng khách hàng. Mong anh giúp đỡ. Phần tính toán kết quả em sẽ cố gắng làm.

Nếu có thời gian nghiên cứu mong các anh chị góp ý thêm cho em về cách xây dựng dữ liệu như thế có hợp lý không? Và quản lý sao cho hợp lý nhất.
 
Chị Xuan Nguyen: Cột lãi đó em mới thêm vào. Vì để tính ra kết quả thì chỉ cần 1 cột lãi nhưng vì khi in ra em muốn rõ ràng 2 bên 1 bên tiền khách mua, và 1 bên tiền khách trả. và tương ứng là lãi của 2 bên đó. Kết quả cuối cùng sẽ bằng số dư tiền mua trừ tiền trả và lãi mua trừ lãi trả. Em để 2 cột như vậy để khách dễ so sánh các mã trả tiền và các mã mua hàng cho dễ so. Em vẫn đang xây dựng nên còn nhiều thiếu sót lắm :((

Cột Trả tại sheet Chitiet của em, em muốn lấy dữ liệu từ cột nào bên sheet kia? Chị hiểu đó là cột khách trả? nhưng không thấy cột nào tương ứng mà lấy dữ liệu sang?
Em trả lời rõ phần này để chị làm hoàn thiện nhé.
 
Chị ơi cột trả em lấy từ cột thu. Vì trong sổ thu chi thì phần thu là phần khách trả mà. Chị hộ em nhé
 
Chị ơi cột trả em lấy từ cột thu. Vì trong sổ thu chi thì phần thu là phần khách trả mà. Chị hộ em nhé

Xong rồi. Em dùng file này nhé.

1.Chị dùng List trong Data-Validation tại ô C6, sheet "Chitiet" để em dễ dàng lựa chọn tên khách hàng. Nếu thêm tên khách hàng, em cứ nhập tiếp vào cột A của sheet 2.
Sheet "thuchi" cũng nên có List chọn cho cột B, tránh việc em nhập thủ công sai tên khách hàng (phần này em có thể tìm hiểu thêm List trong Data-Validation nhé. Và tự làm được. Không khó lắm đâu)

2.Ô C8 chọn tháng, em tự nhập tay nhé. Em nhập đủ ngày mùng 1 của tháng của năm đó vào ô (theo mẫu như trong ô đó).

3.Chị format lại bản in của em rồi đó.

Mã:
Public Sub GPE()
Dim SArr(), dArr(), I As Long, J As Long, K As Long, Ten As String, Thang As Long
Dim Tongso As String, TienNo As String, TienLai As String, ConNo As String, Tem As Date
Thang = [C8].Value
Ten = UCase([C6])
With Sheets("thuchi")
    SArr = .Range(.[A5], .[A65000].End(xlUp)).Resize(, 10).Value
    Tongso = .[N1].Value
    TienNo = .[N2].Value
    TienLai = .[N3].Value
    ConNo = .[N4].Value
End With
ReDim dArr(1 To UBound(SArr, 1), 1 To 8)
For I = 1 To UBound(SArr, 1)
    If UCase(SArr(I, 2)) = Ten Then
        Tem = DateSerial(Year(SArr(I, 1)), Month(SArr(I, 1)), 1)
        If Tem = Thang Then
            K = K + 1: dArr(K, 1) = SArr(I, 1)
            dArr(K, 2) = SArr(I, 5): dArr(K, 3) = SArr(I, 6)
            dArr(K, 4) = SArr(I, 4): dArr(K, 5) = SArr(I, 8)
            dArr(K, 6) = SArr(I, 10): dArr(K, 7) = SArr(I, 3): dArr(K, 8) = SArr(I, 9)
        End If
    End If
Next I
With Sheets("chitiet")
    .[J8:Q10000].ClearContents
    .[J8:Q10000].Borders.LineStyle = xlNone
    If K Then
        With .[J8]
        .Resize(K, 8).Value = dArr
        .Resize(K, 8).Borders.LineStyle = xlContinuous
        .Offset(K + 1).Value = Tongso
        .Offset(K + 1, 1).Resize(, 7).FormulaR1C1 = "=Sum(R8C:R[-2]C)"
        .Offset(K + 2).Value = TienNo
        .Offset(K + 2, 3).FormulaR1C1 = "=R[-1]C - R[-1]C[3]"
        .Offset(K + 3).Value = TienLai
        .Offset(K + 3, 3).FormulaR1C1 = "=R[-2]C[2] - R[-2]C[4]"
        .Offset(K + 5).Value = ConNo
        .Offset(K + 5, 3).FormulaR1C1 = "=Sum(R[-3]C:R[-2]C)"
        End With
    End If
End With
End Sub

Em xem file đã đúng ý chưa nhé:
 

File đính kèm

Lần chỉnh sửa cuối:
Chị ơi chị edit lại giùm em một chút. Chị để 2 cột lãi, một cột đằng sau cột thành tiền và 1 cột đằng sau cột Trả cho em nhé. Cột sau cột thành tiền lấy dữ liệu từ cột lãi chi. Và cột lãi sau cột trả lấy dữ liệu từ cột thu. Mong chị hộ em lần nữa nhé.
 
Ý kiến của anh VietMini thực sự là rất quý báu và chính xác. Vì bản thân em thực sự là 1 tay mơ, kiến thức về excel rất mơ hồ. Chỉ học lỏm mỗi chỗ 1 tí mỗi chỗ 1 tí nên khả năng vận dụng linh hoạt rất kém. Em cũng hỏi rất nhiều và đúng là mỗi lần nhận 1 đoạn code xong lại không biết sử dụng thế nào cho đúng mục đích mình.

Nhưng vì em cũng làm việc khác, công việc này chỉ phụ giúp gia đình nên em cũng biết các anh chị cũng rất bận đâu ai có thể ngồi nghiên cứu yêu cầu của mình kỹ mà giải quyết được nên em luôn cố tìm cách đơn giản hóa vấn đề để hỏi rồi tự mình tùy biến theo ý mình chứ khó lòng trình bày đủ ý mình muốn lên diễn đàn. Không thể ngay từ khâu nhập dữ liệu đã hỏi em nên nhập thế nào rồi dòng này ra sao cột kia thế nào.... Thật sự là rất khó. Và em biết số đông các thành viên ở GPE cũng vậy. Để nghiên cứu kỹ càng cơ bản, tận gốc chắc mất rất nhiều thời gian. Nên em rất khâm phục sự nhẫn nại của các thành viên "lớn" của GPE khi kiên trì giải thích cho mấy thành phần "đầu đất" như em dù biết làm cho xong chắc gì nó đã sử dụng được :((

Em cứ từ từ học, rồi sẽ biết. Ai cũng sẽ qua giai đoạn bỡ ngỡ ban đầu mà. Để mà học được ngay và vận dụng được ngay thì hơi khó, theo dõi các bài trên diễn đàn, và những bài em được các thành viên trả lời, em cứ áp dụng trong công việc của mình, sau đó xem lại kỹ các bài đó xem cách giải và nghiên cứu thêm.

Tuy nhiên có 1 vấn đề là: việc góp ý về định dạng bảng tính hay dữ liệu thì khó có ai góp ý được hết, nên em tự xem lại các dữ liệu của mình đã khoa học chưa? và cả việc trình bày đẹp mắt . Ngay ở dữ liệu của em, mỗi sheet 1 kiểu chữ.

Phần tên khách hàng em chỉ ghi tên viết tắt của đại lý thì phải, sau này có nhiều tên trùng nhau, phức tạp, em cần phải ghi rõ hơn.
Em viết tiếng Anh, Việt lẫn lộn, một là tiếng Việt thì thuần Việt đi, hai là dùng hết tiếng Anh.
Có cột thì có dấu, cột không dấu....

Tóm lại là chị thấy không đẹp và chưa khoa học. Việc sắp xếp khoa học như thế nào thì em lại tự nghiên cứu tiếp. Từ từ học rồi sẽ được em ạ.

Cố gắng lên em!
 
Chị ơi chị edit lại giùm em một chút. Chị để 2 cột lãi, một cột đằng sau cột thành tiền và 1 cột đằng sau cột Trả cho em nhé. Cột sau cột thành tiền lấy dữ liệu từ cột lãi chi. Và cột lãi sau cột trả lấy dữ liệu từ cột thu. Mong chị hộ em lần nữa nhé.

Chị chết mất, làm như kiểu của em, không xem trước là mình muốn cái gì? sắp xếp dữ liệu như thế nào? Giờ em muốn thêm cột hay chuyển cột, mà chuyển thì chuyển từ cột nào sang cột nào? Cột ngày lãi di chuyển đi đâu?

Tốt nhất em đưa file lên. nói rõ ra yêu cầu của em, làm xong rồi lại: chị ơi, sửa giùm em là chị không muốn làm nữa. 12h đêm rồi, hic hic.
 
Lần chỉnh sửa cuối:
Xin lỗi chị rất nhiều. Em quên mất vì lúc trưa em vội quá em thêm cột lãi bên sheet thuchi mà lại k thêm cột bên chitiet. Nhưng file chị làm cho em cũng gần như đáp ứng đầy đủ những gì em cần rồi. Em xin cám ơn chị rất nhiều. Chắc là do em lúng túng chưa diễn giải được hết. Chị nguôi giận rồi ngủ ngon nhé.

Em cám ơn chị về đoạn code, về sự động viên. :d
 
Xin lỗi chị rất nhiều. Em quên mất vì lúc trưa em vội quá em thêm cột lãi bên sheet thuchi mà lại k thêm cột bên chitiet. Nhưng file chị làm cho em cũng gần như đáp ứng đầy đủ những gì em cần rồi. Em xin cám ơn chị rất nhiều. Chắc là do em lúng túng chưa diễn giải được hết. Chị nguôi giận rồi ngủ ngon nhé.

Em cám ơn chị về đoạn code, về sự động viên. :d

Hic, chị có giận em đâu. Lần sau em đưa ra đề bài thì cần xem xét kỹ các yếu tố mình cần và các yêu cầu ngay từ đầu thì có lẽ bài của em xong từ sớm. Em cũng có thể áp dụng được sớm hơn.

Viết hoàn thiện code trên rồi đến yêu cầu cuối cùng của em là chị lơ tơ mơ. Làm bài xong bị cốc đầu mấy cái. Hic. Chị mà giải bài tập không đúng, thầy giáo chị gõ cái "Cốc", đau lắm...Bài này làm đi làm lại mấy lần. Lối do người hỏi nên Thầy chị không gõ đầu đấy...

Chị gửi lại file.
 

File đính kèm

Lần chỉnh sửa cuối:
Em cảm ơn chị nhiều lắm. Nhưng em lại phát sinh thêm chị ạ huhu

Từ tháng 3 trở đi thì lại phát sinh cả nợ cũ của tháng 2. Nên chị có thể thêm edit cho em bằng cách nào đó add nợ cũ của tháng 2 lên 1 dòng đầu tiên tức ngày (1/3) và các tháng sau cũng vậy.

Việc add này em tính làm tay rồi tự thêm vào nguồn Thuchi cũng được. Em chỉ tham khảo chị thôi nhé. Chị đừng căng thẳng nhé :D
 
Em cảm ơn chị nhiều lắm. Nhưng em lại phát sinh thêm chị ạ huhu

Từ tháng 3 trở đi thì lại phát sinh cả nợ cũ của tháng 2. Nên chị có thể thêm edit cho em bằng cách nào đó add nợ cũ của tháng 2 lên 1 dòng đầu tiên tức ngày (1/3) và các tháng sau cũng vậy.

Việc add này em tính làm tay rồi tự thêm vào nguồn Thuchi cũng được. Em chỉ tham khảo chị thôi nhé. Chị đừng căng thẳng nhé :D

Làm lại lần nữa cho em này:

Em xem file đính kèm nhé
 

File đính kèm

Em cũng biết là rất khó diễn đạt nên rất ngại hỏi vì sợ phiền người khác :( Em không phải dân kế toán, cũng chẳng phải dân lập trình. Em lao động chân tay nhiều hơn là gõ bàn phím :(( Thế nên rất khó để làm việc 1 cách khoa học hay hỏi 1 đúng trọng tâm vào cái mính hỏi. Có thể với nhiều người chỉ cần hỏi các anh chị 1 khúc mắc nhỏ như 1 đoạn code thôi, nhưng với em thì phải hỏi hết. Em thực sự là rất mơ hồ về excel. Nhưng đúng là để giỏi cần rất nhiều thời gian. Em cũng cố gắng tham khảo rất nhiều mới tạm có thể dùng 1 số thứ rất nhỏ như các hàm, conditional fomat, và rất là từ khi đọc Pivot table của thầy ptm em mới bắt đầu thấy sức mạnh đáng nể của excel và cố tận dụng nó :(( Chị Xuan nguyen là phụ nữ mà sao lại mê VBA ghê vậy chị. Chị học ở đâu đấy chỉ em với :D
 
Chị Xuân ơi vẫn còn nữa :((

Chị đã cho được nợ cũ vào dòng đầu như của em rồi. Nhưng chị chưa tính cả lãi "nợ cũ"đó chị ạ. Cả tháng đó "nợ cũ"không phải chịu lãi"

Để giải quyết em thấy cần phải như thế này:
+ Tính số ngày lãi của nợ cũ: Như công thức em tìm ngày lãi của trong sheet thuchi: Nếu tháng đang xem nhỏ hơn tháng của TODAY() thì số ngày lãi sẽ bằng Ngày đầu tháng sau trừ đi ngày của "nợ cũ" (Tức ngày 30 của tháng trước tháng đang xem). Và nếu tháng đang xem bằng tháng của TODAY() thì ngày lãi sẽ bằng TODAY()- Ngày nợ cũ. Công thức cho ô J8:
=IF(MONTH(J8)<MONTH(TODAY()),(DATE(YEAR(J8),MONTH(J8)+1,1)-A5-1),(TODAY()-J8))

+ Tính lãi của "nợ cũ": Vlookup tên khách hàng (C6) đến bảng laisuat (em đãn đặt name ở sheet 2) rồi nhân với J8 Tức là: =J8*(Vlookup(C6,laisuat,2,0))

+ Tính tổng như cũ.

Yêu cầu trên chắc chị chưa kịp hoàn hồn nên em nhờ thêm lần này chắc khổ thân chị lắm huhu. Thôi nếu có thời gian rảnh + Cần bài thực hành+ sự yêu quý đàn em thì chị hộ em thêm nhé. Em cám ơn chị nhiều.
 
Chị Xuan nguyen là phụ nữ mà sao lại mê VBA ghê vậy chị. Chị học ở đâu đấy chỉ em với :D

Chị cũng chưa biết nhiều đâu. Ban đầu chị lên GPE hỏi vài hàm công thức, rồi "nghiên cứu" GPE, các bài tập, dù chưa sử dụng đến nhưng thấy bài nào hay hay thì tải về, rồi đọc, rồi học, rồi hỏi các thành viên GPE. Các thành viên GPE luôn hướng dẫn nhiệt tình.

Do vậy em cũng chịu khó search trên diễn đàn các bài tương tự để giải quyết vấn đề của mình nhé.

Thầy dạy VBA của chị thì chị không dám nói tên. Thầy “mắc quạu” rồi lại “Cốc” đầu cho mấy nhát. Mỗi ngày học 4h đồng hồ, mỗi ngày bị Cốc cho 5 cái. Bị Cốc nhiều quá, sợ đau nên cố học, chớ không thầy quạu thì sợ lắm….
 
Chị Xuân ơi vẫn còn nữa :((

Chị đã cho được nợ cũ vào dòng đầu như của em rồi. Nhưng chị chưa tính cả lãi "nợ cũ"đó chị ạ. Cả tháng đó "nợ cũ"không phải chịu lãi"

Để giải quyết em thấy cần phải như thế này:
+ Tính số ngày lãi của nợ cũ: Như công thức em tìm ngày lãi của trong sheet thuchi: Nếu tháng đang xem nhỏ hơn tháng của TODAY() thì số ngày lãi sẽ bằng Ngày đầu tháng sau trừ đi ngày của "nợ cũ" (Tức ngày 30 của tháng trước tháng đang xem). Và nếu tháng đang xem bằng tháng của TODAY() thì ngày lãi sẽ bằng TODAY()- Ngày nợ cũ. Công thức cho ô J8:
=IF(MONTH(J8)<MONTH(TODAY()),(DATE(YEAR(J8),MONTH(J8)+1,1)-A5-1),(TODAY()-J8))

+ Tính lãi của "nợ cũ": Vlookup tên khách hàng (C6) đến bảng laisuat (em đãn đặt name ở sheet 2) rồi nhân với J8 Tức là: =J8*(Vlookup(C6,laisuat,2,0))

+ Tính tổng như cũ.

Yêu cầu trên chắc chị chưa kịp hoàn hồn nên em nhờ thêm lần này chắc khổ thân chị lắm huhu. Thôi nếu có thời gian rảnh + Cần bài thực hành+ sự yêu quý đàn em thì chị hộ em thêm nhé. Em cám ơn chị nhiều.

Hic, em giải thích kiểu "Văn học" chị không hiểu, vì chị không hiểu công việc của em nên chị khuyên em thế này:

1, Hỏi bài trên GPE đừng nên hỏi "đích danh" một ai cả. Vì hỏi đích danh thì người khác dù biết cũng có khi không trả lời đâu. Hơn nữa, ở GPE rất nhiều thành viên khác giỏi hơn chị hàng nghìn lần.

2.Bài của em mỗi lúc hỏi 1 chút, không có hệ thống, nên cũng làm mọi người khó chạy theo.

3.Em nên đưa ra 1 file và trình bày ngắn gọn (nhưng rõ ràng dễ hiểu về ý của em muốn là gì với dữ liệu của em)

4.Hoặc em đang dùng công thức, nên em có thể đưa ra cách giải có thể dùng công thức và nhờ mọi người sửa giùm nếu công thức còn chưa hiệu quả. Chứ không nên đưa nguyên file mà chưa làm gì. Một số điều mà em nói: "em thấy cần phải làm như thế này" thì em cứ thực hành và đưa lên, nhờ mọi người xem và chỉnh sửa nếu chưa ổn, như vậy tốt hơn. Em cũng tự học thêm và biết thêm.
5.Công việc của em chỉ mình em mới hiểu, em cần giải thích rõ ràng từng mục, yêu cầu cũng phải rõ ràng.

Vài lời góp ý, chị tin là em hiểu.
 
Lần chỉnh sửa cuối:
Đúng là giờ em mới thấy mình thật thô lỗ khi cứ nêu tên chị Xuân Nguyên trong bài, trong khi có rất nhiều anh chị khác cũng vào đọc bài. Em thành thật xin lỗi những ai đã đọc và có ý định giúp em mà thấy không thoải mái lắm vì cách nhờ của em.

Em xin đưa file lên đây. Trong file đã có 1 macro. Bảng tính chi tiết dùng macro để tính nên em không sửa được. Mặc dù nếu tính thủ công thì có thể tính được ngay. Em xin nhờ các anh chị giúp em sửa macro để add thêm 2 phép tính nhỏ trong sheet chi tiết với ạ.
 

File đính kèm

Đúng là giờ em mới thấy mình thật thô lỗ khi cứ nêu tên chị Xuân Nguyên trong bài, trong khi có rất nhiều anh chị khác cũng vào đọc bài. Em thành thật xin lỗi những ai đã đọc và có ý định giúp em mà thấy không thoải mái lắm vì cách nhờ của em.

Em xin đưa file lên đây. Trong file đã có 1 macro. Bảng tính chi tiết dùng macro để tính nên em không sửa được. Mặc dù nếu tính thủ công thì có thể tính được ngay. Em xin nhờ các anh chị giúp em sửa macro để add thêm 2 phép tính nhỏ trong sheet chi tiết với ạ.
Hổng hiểu nỗi 2 công thức này:
Nếu dùng công thức thì Q8=IF(MONTH(C8)<MONTH(TODAY()),(DATE(YEAR(C8),MONTH(C8)+1,1)-C8),(TODAY()-C8))

Sau đó Q8=N8*(Vlookup(C6,laisuat,2,0)
Rốt cuộc Q8 dùng công thức nào?
Trong hàm phía trên thì dùng today để tính ngày, vậy ô C8 là ngày gì, nó làm gì với today()?
Sau hơn 30 bài viết thì topic đến đây là "tắt đường".
 
Lần chỉnh sửa cuối:
Lại 1 lần nữa em nhầm. N8=Q8*(Vlookup(C6,laisuat,2,0) huhu

Anh Ba tê: Em xin giải thích hàm trên, chỉ sợ nó mang tính diễn giải, văn học khó hiểu cho anh. Hàm trên em tính số ngày chịu lãi của phần nợ cũ. Nếu tháng đang xem (tức tháng ở ô C8) bằng tháng TODAY() thì nó sẽ bằng TODAY()-C8. Nếu xem tháng trước tháng TODAY() thì sẽ bằng Ngày mùng 1 của tháng sau trừ C8 (vì C8 bằng ngày mùng 1).

Đúng là diễn giải ý mình để người khác hiểu rất khó. Cũng như em có thể để là ra kết quả thì rất dễ, nhưng để in ra 1 bản thanh toán chi tiết cho khách hàng mà khách hàng hiểu thì rất khó. Vì khách hàng của em là những người buôn tự do, họ chỉ muốn mình diễn tả theo cách hiểu của họ chứ họ không hiểu theo cách hiểu của mình.

Em rất mong các anh chị giúp đỡ em. :(
 
Một lần nữa em xin phép "đào bới" topic này lên. Sau 1 thời gian học VBA mì ăn liền nhất em đã có thể hiểu và chỉnh sửa 1 số yêu cầu theo ý mình (đỡ khổ các anh các chị nữa :( )

Em xin phép đưa lại file lên đây rất mong các anh chị sửa giúp em macro "nocu" của chị Xuan.Nguyen trong sheet "chitiet". Trong macro này cách tính như vậy không đúng ý em.

Em muốn tính "nợ cũ" = "Còn nợ" của tháng ngay trước nó. Ví dụ "Nợ cũ" của tháng 5 sẽ bằng "còn nợ" của tháng 4.

Và tháng 2 là tháng bắt đầu giao dịch nên nợ cũ tất cả bằng 0.

Em rất mong được giúp đỡ, và chân thành cám ơn.
 

File đính kèm

Một lần nữa em xin phép "đào bới" topic này lên. Sau 1 thời gian học VBA mì ăn liền nhất em đã có thể hiểu và chỉnh sửa 1 số yêu cầu theo ý mình (đỡ khổ các anh các chị nữa :( )

Em xin phép đưa lại file lên đây rất mong các anh chị sửa giúp em macro "nocu" của chị Xuan.Nguyen trong sheet "chitiet". Trong macro này cách tính như vậy không đúng ý em.

Em muốn tính "nợ cũ" = "Còn nợ" của tháng ngay trước nó. Ví dụ "Nợ cũ" của tháng 5 sẽ bằng "còn nợ" của tháng 4.

Và tháng 2 là tháng bắt đầu giao dịch nên nợ cũ tất cả bằng 0.

Em rất mong được giúp đỡ, và chân thành cám ơn.
Tạm lưu Nợ Cũ hàng tháng của từng KH vào sheet DSKH. Hàng tháng bạn phải cập nhật nó.
Bỏ luôn cái Sub NoCu.
Khi thay đổi ô C6 hay C8 là ghi Còn nợ của tháng đó vào sheet DSKH và lấy nợ cũ của tháng trước từ sheet DSKH này sang M8 của sheet Chitiet.
Các công thức của bạn thì giữ nguyên vì không hiểu cách tính (Híc! thiếu nợ cũng tính lãi, lãi chồng lãi... hổng biết tính)
 

File đính kèm

Tạm lưu Nợ Cũ hàng tháng của từng KH vào sheet DSKH. Hàng tháng bạn phải cập nhật nó.
Bỏ luôn cái Sub NoCu.
Khi thay đổi ô C6 hay C8 là ghi Còn nợ của tháng đó vào sheet DSKH và lấy nợ cũ của tháng trước từ sheet DSKH này sang M8 của sheet Chitiet.
Các công thức của bạn thì giữ nguyên vì không hiểu cách tính (Híc! thiếu nợ cũng tính lãi, lãi chồng lãi... hổng biết tính)

Bạn ấy đưa đề bài lên mà cứ "hic, lại một lần nữa em nhầm", nên em cũng không biết viết code thế nào cho đúng với cái mà bạn ấy "không nhầm".
 
Em cảm ơn anh chi. Cách tính của em là nợ ngày nào tính lãi ngày đấy và cuối tháng sẽ cộng lãi vào nợ tính lãi con. Vì em làm chủ yếu theo cách hiểu cá nhân nên anh chị hơi khó hiểu. Em xin cảm ơn rất nhiều.
 

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

Back
Top Bottom