HỎI VỀ CÁCH LẤY MẢNG DỮ LIỆU PHỤ THUỘC TRÊN EXCEL (6 người xem)

Liên hệ QC

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

thanhtam_thanhtam

Thành viên mới
Tham gia
27/2/11
Bài viết
37
Được thích
6
Nghề nghiệp
Finance
Chào mọi người,

Mình đang có vấn đề đang gặp khó khăn khi làm việc, nhờ mọi người giải cứu giúp mình.
Mình đang có các dữ liệu của 3 cột:
- Lô tổng
- Lô con
- Unipack
Trong đó, mỗi lô tổng có nhiều lô con, và mỗi lô con có nhiều số unipack
Và mình muốn chỉ cần cập nhật thông tin Lô tổng thì thông tin ở Lô conUnipack sẽ được hiển thị.
Việc dùng hàm vlookup từ cột 3 để lấy giá trị cột 2 và 1 thì đơn giản rồi, nhưng giờ mình muốn làm ngược lại thì cần phải làm như thế nào. Mình đã nghỉ đến việc dùng data validation, nhưng mỗi lần làm mình cần phải đặt tên cho từng bảng của cột 2 và 3, trong khi dữ liệu của mình cần là cả trăm thông tin cột 1 (Lô tổng) thì việc đặt tên như trên không khả thi.
Mình đính kèm file excel để mọi người dễ hình dung hơn

Mình cảm ơn mọi người đã đọc và rất mong nhận được hỗ trợ à.

Thanh Tâm
 

File đính kèm

Chào mọi người,

Mình đang có vấn đề đang gặp khó khăn khi làm việc, nhờ mọi người giải cứu giúp mình.
Mình đang có các dữ liệu của 3 cột:
- Lô tổng
- Lô con
- Unipack
Trong đó, mỗi lô tổng có nhiều lô con, và mỗi lô con có nhiều số unipack
Và mình muốn chỉ cần cập nhật thông tin Lô tổng thì thông tin ở Lô conUnipack sẽ được hiển thị.
Việc dùng hàm vlookup từ cột 3 để lấy giá trị cột 2 và 1 thì đơn giản rồi, nhưng giờ mình muốn làm ngược lại thì cần phải làm như thế nào. Mình đã nghỉ đến việc dùng data validation, nhưng mỗi lần làm mình cần phải đặt tên cho từng bảng của cột 2 và 3, trong khi dữ liệu của mình cần là cả trăm thông tin cột 1 (Lô tổng) thì việc đặt tên như trên không khả thi.
Mình đính kèm file excel để mọi người dễ hình dung hơn

Mình cảm ơn mọi người đã đọc và rất mong nhận được hỗ trợ à.

Thanh Tâm
Dữ liệu đã trên 1500 dòng, còn có thể nhiều hơn nữa không?
Dùng VBA nhé, nhập "Lo Tong" gì đó vào ô I4, VBA sẽ làm cho bạn.
 

File đính kèm

Chào mọi người,

Mình đang có vấn đề đang gặp khó khăn khi làm việc, nhờ mọi người giải cứu giúp mình.
Mình đang có các dữ liệu của 3 cột:
- Lô tổng
- Lô con
- Unipack
Trong đó, mỗi lô tổng có nhiều lô con, và mỗi lô con có nhiều số unipack
Và mình muốn chỉ cần cập nhật thông tin Lô tổng thì thông tin ở Lô conUnipack sẽ được hiển thị.
Việc dùng hàm vlookup từ cột 3 để lấy giá trị cột 2 và 1 thì đơn giản rồi, nhưng giờ mình muốn làm ngược lại thì cần phải làm như thế nào. Mình đã nghỉ đến việc dùng data validation, nhưng mỗi lần làm mình cần phải đặt tên cho từng bảng của cột 2 và 3, trong khi dữ liệu của mình cần là cả trăm thông tin cột 1 (Lô tổng) thì việc đặt tên như trên không khả thi.
Mình đính kèm file excel để mọi người dễ hình dung hơn

Mình cảm ơn mọi người đã đọc và rất mong nhận được hỗ trợ à.

Thanh Tâm
 

File đính kèm

Chào mọi người,

Mình đang có vấn đề đang gặp khó khăn khi làm việc, nhờ mọi người giải cứu giúp mình.
Mình đang có các dữ liệu của 3 cột:
- Lô tổng
- Lô con
- Unipack
Trong đó, mỗi lô tổng có nhiều lô con, và mỗi lô con có nhiều số unipack
Và mình muốn chỉ cần cập nhật thông tin Lô tổng thì thông tin ở Lô conUnipack sẽ được hiển thị.
Việc dùng hàm vlookup từ cột 3 để lấy giá trị cột 2 và 1 thì đơn giản rồi, nhưng giờ mình muốn làm ngược lại thì cần phải làm như thế nào. Mình đã nghỉ đến việc dùng data validation, nhưng mỗi lần làm mình cần phải đặt tên cho từng bảng của cột 2 và 3, trong khi dữ liệu của mình cần là cả trăm thông tin cột 1 (Lô tổng) thì việc đặt tên như trên không khả thi.
Mình đính kèm file excel để mọi người dễ hình dung hơn

Mình cảm ơn mọi người đã đọc và rất mong nhận được hỗ trợ à.

Thanh Tâm
Mình có cái này khá là thú vị cho bạn, nhưng mà bạn phải chấp nhận làm một cột phụ thì mới làm được nhé!
trước tiên bạn chèn trước cột tổng một cột và điền công thức như này vào:
Mã:
=IF(ISNUMBER(SEARCH($J$4,B6)),MAX($A$5:A5)+1,0)
1537583091145.png
xong bạn filldown xuống tới cuối hàng.
sau đó lần lượt tại các ô H7, I7, J7 bạn điền công thức vào như sau:
tại ô H7:
Mã:
=IF(I7="","",ROW()-6)
1537583125709.png
tại ô I7:
Mã:
=IFERROR(VLOOKUP(ROWS($I$7:I7),$A$6:$D$5000,3,0),"")
1537583143006.png
tại ô J7:
Mã:
=IFERROR(VLOOKUP(ROWS($I$7:I7),$A$6:$D$5000,4,0),"")
1537583171282.png
xong bạn Filldown 3 cột đó xuống bao nhiêu dòng tùy ý bạn ( số dòng bạn muốn hiển thị tối đa), Ở đây mình fill xuống tới hàng 500.
Bây giờ bạn nhập số tổng bất kỳ hay nhập một cái gì đó bất kỳ vào ô J4 sau đó nhấn Enter. Bạn sẽ có được cái bạn cần.
Về vấn đề thẩm mĩ bạn nếu không thích có thể ẩn cột A là xong.
 
Dữ liệu đã trên 1500 dòng, còn có thể nhiều hơn nữa không?
Dùng VBA nhé.
Chào bác Ba Tê.
Mình muốn vận dụng file của bác để chuyển từ công thức sang VBA, nhưng mình không rành về VBA nên bị lỗi. Mong bác sửa lại lỗi file dưới ở sheet SOCAI. Cảm ơn Bác nhiều!!!
 

File đính kèm

Mình cám ơn tất cả mọi người, mình thật sự bất ngờ vì được giúp đỡ nhanh vậy. Để mình đọc lại các hướng dẫn và nếu có thắc mắc nào mong mọi người tiếp tục giúp đỡ à.

Thanh Tâm
 
Chào bác Ba Tê.
Mình muốn vận dụng file của bác để chuyển từ công thức sang VBA, nhưng mình không rành về VBA nên bị lỗi. Mong bác sửa lại lỗi file dưới ở sheet SOCAI. Cảm ơn Bác nhiều!!!
Tôi không phải kế toán để đọc hiểu cách làm việc của bạn.
Chỉnh lại một chút code "dang dỡ" của bạn, hên thì cho kết quả đúng, không thì thua.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sArr(), dArr(), I As Long, K As Long, R As Long, DK As String
If Target.Address = "$A$5" Then
    Range("A12:F6000").ClearContents
    DK = Trim(Target.Value)
    sArr = Sheet2.Range("A6", Sheet2.Range("A6").End(xlDown)).Resize(, 9).Value
    R = UBound(sArr)
    ReDim dArr(1 To R, 1 To 9)
    For I = 1 To R
        If sArr(I, 5) = DK Or sArr(I, 7) = DK Then
            K = K + 1
            dArr(K, 1) = sArr(I, 1)
            dArr(K, 2) = sArr(I, 2)
            dArr(K, 3) = sArr(I, 4)
            If sArr(I, 5) = DK Then
                dArr(K, 4) = sArr(I, 8)
                dArr(K, 5) = sArr(I, 9)
            Else
                dArr(K, 4) = sArr(I, 6)
                dArr(K, 6) = sArr(I, 9)
            End If
         End If
    Next I
    If K Then Range("A12").Resize(K, 6) = dArr
End If
End Sub
 
Cám ơn bạn Ba Te nhiều, rất tuyệt à. Mình đang đọc lại phần bạn viết code để điều chỉnh lại file gốc của mình. Ban đầu mình để ở cột H2, sau đó lại chèn thêm cột và dòng nữa mà chưa thay đổi bạn à
Bài đã được tự động gộp:

Cám ơn bạn nhiều nha. Mình cũng thử một công thức mảng, trong đó sử dụng hàm small, iff và row. Nhưng nó phức tạp hợp công thức của bạn rất nhiều!!!!
 
Lần chỉnh sửa cuối:
Mình có cái này khá là thú vị cho bạn, nhưng mà bạn phải chấp nhận làm một cột phụ thì mới làm được nhé!
trước tiên bạn chèn trước cột tổng một cột và điền công thức như này vào:
Mã:
=IF(ISNUMBER(SEARCH($J$4,B6)),MAX($A$5:A5)+1,0)
View attachment 204284
xong bạn filldown xuống tới cuối hàng.
sau đó lần lượt tại các ô H7, I7, J7 bạn điền công thức vào như sau:
tại ô H7:
Mã:
=IF(I7="","",ROW()-6)
View attachment 204285
tại ô I7:
Mã:
=IFERROR(VLOOKUP(ROWS($I$7:I7),$A$6:$D$5000,3,0),"")
View attachment 204286
tại ô J7:
Mã:
=IFERROR(VLOOKUP(ROWS($I$7:I7),$A$6:$D$5000,4,0),"")
View attachment 204287
xong bạn Filldown 3 cột đó xuống bao nhiêu dòng tùy ý bạn ( số dòng bạn muốn hiển thị tối đa), Ở đây mình fill xuống tới hàng 500.
Bây giờ bạn nhập số tổng bất kỳ hay nhập một cái gì đó bất kỳ vào ô J4 sau đó nhấn Enter. Bạn sẽ có được cái bạn cần.
Về vấn đề thẩm mĩ bạn nếu không thích có thể ẩn cột A là xong.

@lameco411: Đúng là excel nó rộng mênh mông, mình lại biết thêm nhiều cách kết hợp mới. Rất cảm ơn bạn lameco411 nhé.
 
Tôi không phải kế toán để đọc hiểu cách làm việc của bạn.
Chỉnh lại một chút code "dang dỡ" của bạn, hên thì cho kết quả đúng, không thì thua.

Bác Ba Tê xem giúp sửa lỗi tại sheet SONKTHUTIEN. Cảm ơn Bác nhiều!!!
 

File đính kèm

Sao bạn không dùng Pivot table? Với Lô Tổng được đặt trong trường Filter (Hoặc dùng Slicer), vừa nhanh vừa đơn giản.
 
Sao bạn không dùng Pivot table? Với Lô Tổng được đặt trong trường Filter (Hoặc dùng Slicer), vừa nhanh vừa đơn giản.

Cám ơn bạn nhưng mà mục đích file mình cần làm thì không dùng pivot được bạn à, do đây chỉ là 1 phần trong file quản lý bên mình và mình lấy ra để nhờ mọi người giúp đỡ à.
Bài đã được tự động gộp:

Dữ liệu đã trên 1500 dòng, còn có thể nhiều hơn nữa không?
Dùng VBA nhé, nhập "Lo Tong" gì đó vào ô I4, VBA sẽ làm cho bạn.

Bác Ba Tê ơi, mình không hiểu vì sao, khi mình chỉnh sửa lại lệnh như bác viết để sử dụng cho file của mình thì không chay được marco. Mình đã thử viết lại y chang code của bác viết, nhưng trên 1 file khác (mình đang đính kèm file Book2) với các thông tin giống như mình gửi mọi người, nhưng macro vẫn không chạy. Mình đã kiểm tra file đã enable marco chưa thì cũng đã ok hết rồi. Mong bác kiểm tra giùm excel của mình đang bị lỗi gì không ạ.
 

File đính kèm

Lần chỉnh sửa cuối:
Mình đã thử viết lại y chang code của bác viết, nhưng trên 1 file khác ...
Bài đã được tự động gộp:



Bác Ba Tê ơi, mình không hiểu vì sao, khi mình chỉnh sửa lại lệnh như bác viết để sử dụng cho file của mình thì không chay được marco. Mình đã thử viết lại y chang code của bác viết, nhưng trên 1 file khác (mình đang đính kèm file Book2) với các thông tin giống như mình gửi mọi người, nhưng macro vẫn không chạy. Mình đã kiểm tra file đã enable marco chưa thì cũng đã ok hết rồi. Mong bác kiểm tra giùm excel của mình đang bị lỗi gì không ạ.
"viết lại y chang" là do bạn nghĩ.
Bạn xem lại dòng này xem nó y chang của ai?
If Target.Address = Range("$I$4") Then
Bài đã được tự động gộp:

Bác Ba Tê xem giúp sửa lỗi tại sheet SONKTHUTIEN. Cảm ơn Bác nhiều!!!
- Bạn tham gia rất nhiều bài viết mà lại chen vào topic của người khác hỏi chuyện của mình.
- Bạn nhờ giúp thì cũng nên giải thích rõ bạn muốn làm gì với sheet nào, lấy cái gì, của sheet nào, ghi vào cột nào, sheet nào.
Đâu phải ai cũng cùng ngành nghề (công việc) như bạn mà hiểu ý bạn muốn qua mấy dòng code (chưa chắc đúng kết quả).
Tui mà biết gì về kế toán (có có, nợ nợ, đối ứng đứng ói...) là "chết liền".
 
Lần chỉnh sửa cuối:
Cảm ơn Bác nhiều!!!
 
Lần chỉnh sửa cuối:
"
- Bạn tham gia rất nhiều bài viết mà lại chen vào topic của người khác hỏi chuyện của mình.
- Bạn nhờ giúp thì cũng nên giải thích rõ bạn muốn làm gì với sheet nào, lấy cái gì, của sheet nào, ghi vào cột nào, sheet nào.
Đâu phải ai cũng cùng ngành nghề (công việc) như bạn mà hiểu ý bạn muốn qua mấy dòng code (chưa chắc đúng kết quả).
Tui mà biết gì về kế toán (có có, nợ nợ, đối ứng đứng ói...) là "chết liền".

Ban đầu Em cũng không muốn chen vào topic của người khác. Nhưng khi bạn trên hỏi, thì em trả lời thì em thấy code của Bác rất là hay nên em muốn áp dụng luôn vào công việc của mình. Nhưng khi áp dụng vào thì có mấy cái phát sinh mà em không sửa lỗi được (do mới tập tành VBA) nên sẵn topic trên em nhờ bác sửa lại lỗi luôn tại sheet mà em đang làm. Trân thành cảm ơn Bác rất nhiều.
 

File đính kèm

Web KT

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

Back
Top Bottom