LỌC DANH SÁCH VÀ DÒ TÌM DỮ LIỆU

duong22000

Thành viên thường trực
Tham gia ngày
8 Tháng năm 2013
Bài viết
233
Thích
18
Điểm
385
#1
Em có 1 file như sau:
3 sheet( L1, L2, L3): Chứa danh sách và điểm của các môn
1sheet(TH): Tổng hợp danh sách duy nhất và lấy giá trị ở 3sheet trên để điền vào cột điểm môn tương ứng (cột C, D, E)
Em gửi file, mong mọi người trên GPE giúp em!
 

File đính kèm

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
5,282
Thích
8,970
Điểm
860
#2
Macro của bạn tạm là vầy:
PHP:
Sub TongHopDiem()
 Dim ShName As String
 Dim Sh As Integer, Rws As Integer, W As Integer, J As Long, Dong As Integer
 Dim Rng As Range, sRng As Range, Arr()
 Const NM As Integer = 7
 
 Sheets("TH").Select
 For Sh = 1 To 3
    If Sh = 1 Then
        Rws = [B6].CurrentRegion.Rows.Count
        [A6].Resize(Rws, 3).Value = Sheets("L1").[A6].Resize(Rws, 3).Value
    Else
        Set Rng = [B6].Resize(Rws + Sh * NM)    'Trang "TH"     '
        With Sheets("L" & CStr(Sh))
            Dong = .[B6].CurrentRegion.Rows.Count
            Arr() = .[B6].Resize(Dong, 2).Value
            For J = 1 To UBound(Arr())
                Set sRng = Rng.Find(Arr(J, 1), , xlFormulas, xlWhole)
                If sRng Is Nothing Then
                    Dong = [A65500].End(xlUp).Row + 1
                    Cells(Dong, "A").Value = Cells(Dong - 1, "A").Value + 1
                    Cells(Dong, "B").Value = Arr(J, 1)
                    Cells(Dong, 2 + Sh).Value = Arr(J, 2)
                Else
                    sRng.Offset(, Sh).Value = Arr(J, 2)
                End If
            Next J
        End With
    End If
 Next Sh
End Sub
 

duong22000

Thành viên thường trực
Tham gia ngày
8 Tháng năm 2013
Bài viết
233
Thích
18
Điểm
385
#3
Macro của bạn tạm là vầy:
PHP:
Sub TongHopDiem()
Dim ShName As String
Dim Sh As Integer, Rws As Integer, W As Integer, J As Long, Dong As Integer
Dim Rng As Range, sRng As Range, Arr()
Const NM As Integer = 7

Sheets("TH").Select
For Sh = 1 To 3
    If Sh = 1 Then
        Rws = [B6].CurrentRegion.Rows.Count
        [A6].Resize(Rws, 3).Value = Sheets("L1").[A6].Resize(Rws, 3).Value
    Else
        Set Rng = [B6].Resize(Rws + Sh * NM)    'Trang "TH"     '
        With Sheets("L" & CStr(Sh))
            Dong = .[B6].CurrentRegion.Rows.Count
            Arr() = .[B6].Resize(Dong, 2).Value
            For J = 1 To UBound(Arr())
                Set sRng = Rng.Find(Arr(J, 1), , xlFormulas, xlWhole)
                If sRng Is Nothing Then
                    Dong = [A65500].End(xlUp).Row + 1
                    Cells(Dong, "A").Value = Cells(Dong - 1, "A").Value + 1
                    Cells(Dong, "B").Value = Arr(J, 1)
                    Cells(Dong, 2 + Sh).Value = Arr(J, 2)
                Else
                    sRng.Offset(, Sh).Value = Arr(J, 2)
                End If
            Next J
        End With
    End If
Next Sh
End Sub
Em xin cảm ơn bác ! Để em thử code, có gì bác giúp em tiếp nhé ....
Bài đã được tự động gộp:

Em xin cảm ơn bác ! Để em thử code, có gì bác giúp em tiếp nhé ....
Macro của bạn tạm là vầy:
PHP:
Sub TongHopDiem()
Dim ShName As String
Dim Sh As Integer, Rws As Integer, W As Integer, J As Long, Dong As Integer
Dim Rng As Range, sRng As Range, Arr()
Const NM As Integer = 7

Sheets("TH").Select
For Sh = 1 To 3
    If Sh = 1 Then
        Rws = [B6].CurrentRegion.Rows.Count
        [A6].Resize(Rws, 3).Value = Sheets("L1").[A6].Resize(Rws, 3).Value
    Else
        Set Rng = [B6].Resize(Rws + Sh * NM)    'Trang "TH"     '
        With Sheets("L" & CStr(Sh))
            Dong = .[B6].CurrentRegion.Rows.Count
            Arr() = .[B6].Resize(Dong, 2).Value
            For J = 1 To UBound(Arr())
                Set sRng = Rng.Find(Arr(J, 1), , xlFormulas, xlWhole)
                If sRng Is Nothing Then
                    Dong = [A65500].End(xlUp).Row + 1
                    Cells(Dong, "A").Value = Cells(Dong - 1, "A").Value + 1
                    Cells(Dong, "B").Value = Arr(J, 1)
                    Cells(Dong, 2 + Sh).Value = Arr(J, 2)
                Else
                    sRng.Offset(, Sh).Value = Arr(J, 2)
                End If
            Next J
        End With
    End If
Next Sh
End Sub
Em xin bác chỉ rõ cho em về đoạn code trên: Nếu em thay đổi số lượng sheet(L1, L2, L3, L4, L5, ...) và số cột điểm các môn tại các sheet này với ạ
Trường hợp khác: Bài toán này có thể sử dụng Hàm dò tìm giá trị, tìm kiếm để lấy dữ liệu không ạ ?
 
Lần chỉnh sửa cuối:

NXDong.Na

Thành viên mới
Tham gia ngày
10 Tháng một 2019
Bài viết
5
Thích
1
Điểm
15
Tuổi
28
#4
Chào các pro!
Mình có file dữ liệu ở Sheet "SMK" mình muốn xuất biểu tổng hợp ra kết quả theo mẫu ở Sheet "Tonghop"
Cụ thể ở trong Sheet "SMK" có cột Loại đất trong mục "Loại đất hiện trạng" thì từng tờ bản đồ nó tổng hợp các loại đất theo 1 dòng
Cảm ơn các Bác!
 

File đính kèm

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
5,282
Thích
8,970
Điểm
860
#5
(1)Em xin bác chỉ rõ cho em về đoạn code trên: Nếu em thay đổi số lượng sheet(L1, L2, L3, L4, L5, ...) và số cột điểm các môn tại các sheet này với ạ (2)Trường hợp khác: Bài toán này có thể sử dụng Hàm dò tìm giá trị, tìm kiếm để lấy dữ liệu không ạ ?
(1) 3 môn thì vòng lặp từ 1 đến 3; thêm bao nhiêu môn (thêm trang tính kết quả điểm) thì thêm chỉ số vòng lặp tương ứng;
Nhưng các trang thêm vẫn fải giữ nguyên thiết kế như 3 trang đã có
(2) Về vận dụng hàm trong Excel có khi mình còn thua xa bạn ấy chứ!
 

duong22000

Thành viên thường trực
Tham gia ngày
8 Tháng năm 2013
Bài viết
233
Thích
18
Điểm
385
#6
(1) 3 môn thì vòng lặp từ 1 đến 3; thêm bao nhiêu môn (thêm trang tính kết quả điểm) thì thêm chỉ số vòng lặp tương ứng;
Nhưng các trang thêm vẫn fải giữ nguyên thiết kế như 3 trang đã có
(2) Về vận dụng hàm trong Excel có khi mình còn thua xa bạn ấy chứ!
(1) 3 môn thì vòng lặp từ 1 đến 3; thêm bao nhiêu môn (thêm trang tính kết quả điểm) thì thêm chỉ số vòng lặp tương ứng;
Nhưng các trang thêm vẫn fải giữ nguyên thiết kế như 3 trang đã có
(2) Về vận dụng hàm trong Excel có khi mình còn thua xa bạn ấy chứ!
Vâng ạ, em cảm ơn bác SA_DQ !
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
5,282
Thích
8,970
Điểm
860
#7
Chào các pro!
Mình có file dữ liệu ở Sheet "SMK" mình muốn xuất biểu tổng hợp ra kết quả theo mẫu ở Sheet "Tonghop"
Cụ thể ở trong Sheet "SMK" có cột Loại đất trong mục "Loại đất hiện trạng" thì từng tờ bản đồ nó tổng hợp các loại đất theo 1 dòng
Cảm ơn các Bác!
Bạn kiểm tra số liệu trong file:
 

File đính kèm

NXDong.Na

Thành viên mới
Tham gia ngày
10 Tháng một 2019
Bài viết
5
Thích
1
Điểm
15
Tuổi
28
#8
Bạn kiểm tra số liệu trong file:
- Em nhờ bác một chút nữa. Em phải tổng hợp của nhiều File có dạng như "SMK" riêng từng xã. Giờ em muốn có 1 đoạn code để đọc mẫu "SMK" của file khác, rồi để mình cố định các modul trong file Excel này để đọc và tổng hợp dữ liệu và nó xuất ra 1 File Excel Form "Tonghop" lưu riêng.
-Với nhờ bác viết hộ em nó tổng hợp cột Tổng diện tích và tổng số thửa.
- Nhiiều tờ bản đồ hơn mẫu "Tonghop" thì nó tự Insert các dòng mới và tính tổng ở cuối dòng.
Nhờ bác cho em số điện thoại em cảm ơn bác!
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
5,282
Thích
8,970
Điểm
860
#9
Mình không có khả năng viết Code để làm việc với 2 file trở lên;
Bạn đành nhờ trong cộng đồng vậy.
 

NXDong.Na

Thành viên mới
Tham gia ngày
10 Tháng một 2019
Bài viết
5
Thích
1
Điểm
15
Tuổi
28
#10
Mình không có khả năng viết Code để làm việc với 2 file trở lên;
Bạn đành nhờ trong cộng đồng vậy.
Bác hiểu nhầm ý em rồi. Ý em là Mình tạo một mẫu chuẩn rồi viết macro đọc file excel "SMK" để tiện khi tổng hợp SMK của xã khác.
Nhờ bác cho em số điện thoại và Email hỗ trợ em với. Em trả phí cho bác. Cảm ơn bác.
Bài đã được tự động gộp:

Em cũng viết được mấy cái đọc từ *.txt thôi bác. Như mẫu này.
 

File đính kèm

Lần chỉnh sửa cuối:
Top