Viết code lấy dữ liệu (1 người xem)

Liên hệ QC

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

chisinhvnn

Thành viên tiêu biểu
Tham gia
7/3/08
Bài viết
479
Được thích
106
Nhờ GPE gúp mình lấy số liệu từ sheet"dulieu" sang sheet"thamdinh" với.
Cách lấy số liệu: từ sheet"dulieu" qua sheets"thamdinh"
+ Đối với giá trị họ tên thì thê hiện Họ tên, Năm sinh, CMND (Nguyễn Văn A, Sinh năm 1987, CMND số 191514598)
+ Đối với giá trị tài sản: nếu cột kích thước có giá trị thi nối cột Tài sản và kích thước và "m" (Nhà cấp 4: Nhà móng BT; cột BTCT; tường chịu lực xây gạch; mái ngói, tôn; nền xi măng, không có khu phụ trong nhà , kích thước: 7.5 x 3.5 m).
Nhờ GPE giúp đỡ.
 

File đính kèm

Nhờ GPE gúp mình lấy số liệu từ sheet"dulieu" sang sheet"thamdinh" với.
Cách lấy số liệu: từ sheet"dulieu" qua sheets"thamdinh"
+ Đối với giá trị họ tên thì thê hiện Họ tên, Năm sinh, CMND (Nguyễn Văn A, Sinh năm 1987, CMND số 191514598)
+ Đối với giá trị tài sản: nếu cột kích thước có giá trị thi nối cột Tài sản và kích thước và "m" (Nhà cấp 4: Nhà móng BT; cột BTCT; tường chịu lực xây gạch; mái ngói, tôn; nền xi măng, không có khu phụ trong nhà , kích thước: 7.5 x 3.5 m).
Nhờ GPE giúp đỡ.
Anh thử chạy Sub này thử xem sao
Mã:
Sub Layulieu()
    Dim sArr(), tArr(), dArr(), Arr()
    Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Arr = .Range("B3:G3").Value
    tArr = .Range("B4", .Range("B65535").End(3)).Resize(, 6).Value
End With
For I = 1 To UBound(tArr)
    Dic.Item(tArr(I, 1)) = I
Next I
With Sheets("Dulieu")
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For I = 1 To UBound(sArr)
    R = Dic.Item(sArr(I, 1))
    K = K + 1
    dArr(K, 1) = I
    dArr(K, 2) = tArr(R, 2)
    For J = 3 To 6
        If tArr(R, J) <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & tArr(R, J)
    Next J
    K = K + 1
    If sArr(I, 4) <> Empty Then
        dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4)
    Else
        dArr(K, 2) = sArr(I, 3)
    End If
    dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
    dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
Next I
With Sheets("ThamDinh")
    .Range("A6:H1000").ClearContents
    .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing
End Sub
Mà Cột thành tiền hình như bị sai đó anh à./
 
Upvote 0
Anh thử chạy Sub này thử xem sao
Mã:
Sub Layulieu()
    Dim sArr(), tArr(), dArr(), Arr()
    Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Arr = .Range("B3:G3").Value
    tArr = .Range("B4", .Range("B65535").End(3)).Resize(, 6).Value
End With
For I = 1 To UBound(tArr)
    Dic.Item(tArr(I, 1)) = I
Next I
With Sheets("Dulieu")
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For I = 1 To UBound(sArr)
    R = Dic.Item(sArr(I, 1))
    K = K + 1
    dArr(K, 1) = I
    dArr(K, 2) = tArr(R, 2)
    For J = 3 To 6
        If tArr(R, J) <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & tArr(R, J)
    Next J
    K = K + 1
    If sArr(I, 4) <> Empty Then
        dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4)
    Else
        dArr(K, 2) = sArr(I, 3)
    End If
    dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
    dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
Next I
With Sheets("ThamDinh")
    .Range("A6:H1000").ClearContents
    .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing
End Sub
Mà Cột thành tiền hình như bị sai đó anh à./
Thấy bạn hay dùng Dic, có thể hướng dẫn giúp mình quy trình vận hành nó được không, mình có đọc trên GPE nhưng không thông lắm
 
Upvote 0
Thấy bạn hay dùng Dic, có thể hướng dẫn giúp mình quy trình vận hành nó được không, mình có đọc trên GPE nhưng không thông lắm
Em đi học mót trên diễn đàn lên đâu có căn cơ gì đâu anh. Hướng dẫn anh nếu sai thì chết em :D. Không dùng Dic thì mình dùng VLOOKUP cũng được ạ
 
Upvote 0
Một mã đối tượng thì mình chỉ cho xuất hiện tên 1 lần, còn phần tài sản thì thi theo mã đối tượng bên dưới dòng hoten. File kèm theo cảu anh đấy ví dụ ở sheet"thamdinh: sở số stt 3 em sẽ thấy afh.
 
Upvote 0
Anh dùng thử cái này xem sao
Mã:
Sub Layulieu()
    Dim sArr(), dArr(), Arr()
    Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    Arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
For I = 1 To UBound(sArr)
    Dic(sArr(I, 1)) = 1
Next I
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For I = 1 To UBound(sArr)
        If sArr(I, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(I, 4) <> Empty Then
                dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4) & " m"
            Else
                dArr(K, 2) = sArr(I, 3)
            End If
            dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
            dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
        End If
    Next I
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:H1000").ClearContents
    .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Anh dùng thử cái này xem sao
Mã:
Sub Layulieu()
    Dim sArr(), dArr(), Arr()
    Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    Arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
For I = 1 To UBound(sArr)
    Dic(sArr(I, 1)) = 1
Next I
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For I = 1 To UBound(sArr)
        If sArr(I, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(I, 4) <> Empty Then
                dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4) & " m"
            Else
                dArr(K, 2) = sArr(I, 3)
            End If
            dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
            dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
        End If
    Next I
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:H1000").ClearContents
    .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing
End Sub
Em ghi chú thích từng phân đoạn cho anh với
 
Upvote 0
Anh dùng thử cái này xem sao
Mã:
Sub Layulieu()
Dim sArr(), dArr(), Arr()
   Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
   Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
   Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
   Arr = .Range("B3:G3").Value
   sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
For I = 1 To UBound(sArr)
   Dic(sArr(I, 1)) = 1
Next I
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
   For I = 1 To UBound(sArr)
       If sArr(I, 1) = v Then
           Sodem = Sodem + 1
           If Sodem = 1 Then
               K = K + 1: Stt = Stt + 1
               dArr(K, 1) = Stt
               dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
               For J = 3 To 4
                   Tam = Application.VLookup(v, Rng, J, False)
                   If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & Tam
               Next J
           End If
           K = K + 1
           If sArr(I, 4) <> Empty Then
               dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4) & " m"
           Else
               dArr(K, 2) = sArr(I, 3)
           End If
           dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
           dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
       End If
   Next I
   Sodem = 0
Next
With Sheets("ThamDinh")
   .Range("A6:H1000").ClearContents
   .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing

End Sub
Giải thích giúp mình đoạn code này với: Dic(sArr(I, 1)) = 1, Dic =1 có ý nghĩa gì vậy, với ReDim dArr(1 To UBound(sArr) * 2, 1 To 9), tại sao mình redim UBound(sArr) * 2, mình chưa hiểu lắm 2 đoạn code trên. GPE giúp mình tìm hiểu với.
 
Upvote 0
Giải thích giúp mình đoạn code này với: Dic(sArr(I, 1)) = 1, Dic =1 có ý nghĩa gì vậy, với ReDim dArr(1 To UBound(sArr) * 2, 1 To 9), tại sao mình redim UBound(sArr) * 2, mình chưa hiểu lắm 2 đoạn code trên. GPE giúp mình tìm hiểu với.
(1) Dic(sArr(I, 1)) = 1 thì anh lại phải sang đây đọc rồi :D ( Nó nằm trong mục Thuộc tính Item nha anh)
http://www.giaiphapexcel.com/diendan/threads/tổng-quan-về-scripting-dictionary.60643/
(2) ReDim dArr(1 To UBound(sArr) * 2, 1 To 9) là khai báo mảng dArr
Có nghĩa là mảng dArr có kích thưc
- Số dòng từ 1 đến dòng cuối mảng sArr * 2 (Số hàng gấp đôi mảng sArr)
- Số cột từ 1 đến 9 ( Có 9 cột)
Trong đó Ubound(sArr) hay Ubound(sArr,1) là dòng cuối của mảng sArr: Ubound(sArr,2) là cột cuối của mảng sArr
 
Upvote 0
(1) Dic(sArr(I, 1)) = 1 thì anh lại phải sang đây đọc rồi :D ( Nó nằm trong mục Thuộc tính Item nha anh)
http://www.giaiphapexcel.com/diendan/threads/tổng-quan-về-scripting-dictionary.60643/
(2) ReDim dArr(1 To UBound(sArr) * 2, 1 To 9) là khai báo mảng dArr
Có nghĩa là mảng dArr có kích thưc
- Số dòng từ 1 đến dòng cuối mảng sArr * 2 (Số hàng gấp đôi mảng sArr)
- Số cột từ 1 đến 9 ( Có 9 cột)
Trong đó Ubound(sArr) hay Ubound(sArr,1) là dòng cuối của mảng sArr: Ubound(sArr,2) là cột cuối của mảng sArr
Mình muốn hỏi vì sao lại *2 àh
 
Upvote 0
Anh dùng thử cái này xem sao
Mã:
Sub Layulieu()
    Dim sArr(), dArr(), Arr()
    Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    Arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
For I = 1 To UBound(sArr)
    Dic(sArr(I, 1)) = 1
Next I

ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For I = 1 To UBound(sArr)
        If sArr(I, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(I, 4) <> Empty Then
                dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4) & " m"
            Else
                dArr(K, 2) = sArr(I, 3)
            End If
            dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
            dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
        End If
    Next I
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:H1000").ClearContents
    .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing
End Sub
Với code này, mình có chỉnh sửa lại để lọc dữ liệu nhưng báo lỗi bạn xem giúp mình tý.
Mình thêm các dòng code sau:

If Sheet1.Range("w2").Value = "" Then
(phần code của bạn ở trên)
else
ReDim darr1(1 To UBound(sArr), 1 To 11)
For n = 1 To UBound(sArr)
If sArr(n, 12) = Sheet1.[w2] Then
K = K + 1

darr1(K, 1) = sArr(n, 1)
For J = 2 To 11
darr1(K, J) = sArr(n, J)
Next J
End If
Next n
(Mình tạo ra mãng dữ liệu số số cột khong thay đổi)
If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(darr1)
Dic(darr1(i, 1)) = 1
Next i
ReDim dArr(1 To UBound(darr1) * 2, 1 To 9)
For Each v In Dic.keys()
For i = 1 To UBound(darr1)
If darr1(i, 1) = v Then
Sodem = Sodem + 1
If Sodem = 1 Then
K = K + 1: Stt = Stt + 1
dArr(K, 1) = Stt
dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
For J = 3 To 4
Tam = Application.VLookup(v, Rng, J, False)
If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & arr(1, J) & ": " & Tam
Next J
End If
K = K + 1
If darr1(i, 4) <> Empty Then
dArr(K, 2) = darr1(i, 3) & KT & darr1(i, 4) & " m"
Else
dArr(K, 2) = darr1(i, 3)
End If
dArr(K, 3) = darr1(i, 5): dArr(K, 4) = darr1(i, 6): dArr(K, 5) = darr1(i, 7)
dArr(K, 6) = darr1(i, 8): dArr(K, 7) = darr1(i, 9): dArr(K, 8) = darr1(i, 10)
dArr(K, 9) = darr1(i, 11)
End If
Next i
Sodem = 0
Next
With Sheets("ThamDinh")
.Range("A6:N10000").ClearContents
.Range("A6:N10000").ClearFormats
.Range("A6").Resize(K, 9) = dArr
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2


End If
 
Upvote 0
Với code này, mình có chỉnh sửa lại để lọc dữ liệu nhưng báo lỗi bạn xem giúp mình tý.
Tìm tới chỗ chuyên để ghi code ấy, cho khúc trên vào đó.
Người ta làm giúp mình còn cho vào đó để khi mình nhận hàng còn biết lấy về.
Vậy mình đi hỏi cũng cố mà làm được như thế. Nếu không làm được như thế thì hết cách!
 
Upvote 0
Tìm tới chỗ chuyên để ghi code ấy, cho khúc trên vào đó.
Người ta làm giúp mình còn cho vào đó để khi mình nhận hàng còn biết lấy về.
Vậy mình đi hỏi cũng cố mà làm được như thế. Nếu không làm được như thế thì hết cách!
Nói thật là mình chưa biết cách đưa code vào trong ô code như thế nào. Nhờ bạn chỉ giúp mình
 
Lần chỉnh sửa cuối:
Upvote 0
Anh dùng thử cái này xem sao
Mã:
Sub Layulieu()
    Dim sArr(), dArr(), Arr()
    Dim Dic As Object, I As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String
Set Dic = CreateObject("Scripting.Dictionary")
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    Arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 9).Value
End With
For I = 1 To UBound(sArr)
    Dic(sArr(I, 1)) = 1
Next I
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For I = 1 To UBound(sArr)
        If sArr(I, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & Arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(I, 4) <> Empty Then
                dArr(K, 2) = sArr(I, 3) & KT & sArr(I, 4) & " m"
            Else
                dArr(K, 2) = sArr(I, 3)
            End If
            dArr(K, 3) = sArr(I, 5): dArr(K, 4) = sArr(I, 6): dArr(K, 5) = sArr(I, 7)
            dArr(K, 6) = sArr(I, 8): dArr(K, 7) = sArr(I, 9)
        End If
    Next I
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:H1000").ClearContents
    .Range("A6").Resize(K, 9) = dArr
End With
Set Dic = Nothing
End Sub
Mình chỉnh sửa lại code, xem giúp mình với.
Mã:
Public Sub Laydulieu()
    Dim sArr(), dArr(), arr(), sarr1(), darr1(), dArr2(), arr4(), dArr4(), sArr4()
    Dim Dic As Object, i As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String
Set Dic = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "
With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 12).Value
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'code bo sung
If Sheet1.Range("w2").Value = "" Then
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(sArr)
    Dic(sArr(i, 1)) = 1
Next i
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For i = 1 To UBound(sArr)
        If sArr(i, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(i, 4) <> Empty Then
                dArr(K, 2) = sArr(i, 3) & KT & sArr(i, 4) & " m"
            Else
                dArr(K, 2) = sArr(i, 3)
            End If
            dArr(K, 3) = sArr(i, 5): dArr(K, 4) = sArr(i, 6): dArr(K, 5) = sArr(i, 7)
            dArr(K, 6) = sArr(i, 8): dArr(K, 7) = sArr(i, 9): dArr(K, 8) = sArr(i, 10)
            dArr(K, 9) = sArr(i, 11)
        End If
    Next i
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:N10000").ClearContents
    .Range("A6:N10000").ClearFormats
    .Range("A6").Resize(K, 9) = dArr
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2
''''''''''''''''''''''''''''''''''''''''''''''''
Else
        ReDim darr1(1 To UBound(sArr), 1 To 11)
        For n = 1 To UBound(sArr)
            If sArr(n, 12) = Sheet1.[w2] Then
                K = K + 1
             
                darr1(K, 1) = sArr(n, 1)
                For l = 2 To 11
                    darr1(K, l) = sArr(n, l)
                Next l
            End If
        Next n
       '(đoạn này mình tạo mãng lấy dữ liệu theo đợt ở cột W (dữ liệu cột W minht ạo thêm so với file  gốc)
           ''''''''''''''''''''''''''''''
If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(darr1)
    Dic(darr1(i, 1)) = 1
Next i
ReDim dArr2(1 To UBound(darr1) * 2, 1 To 9)
For Each v In Dic.keys()
    For i = 1 To UBound(darr1)
        If darr1(i, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr2(K, 1) = Stt
                dArr2(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr2(K, 2) = darr1(K, 2) & "; " & arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If darr1(i, 4) <> Empty Then
                dArr2(K, 2) = darr1(i, 3) & KT & darr1(i, 4) & " m"
            Else
                dArr2(K, 2) = darr1(i, 3)
            End If
            dArr2(K, 3) = darr1(i, 5): dArr2(K, 4) = darr1(i, 6): dArr2(K, 5) = darr1(i, 7)
            dArr2(K, 6) = darr1(i, 8): dArr2(K, 7) = darr1(i, 9): dArr2(K, 8) = darr1(i, 10)
            dArr2(K, 9) = darr1(i, 11)
        End If
    Next i
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:N10000").ClearContents
    .Range("A6:N10000").ClearFormats
    .Range("A6").Resize(K, 9) = dArr2
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2
 

End If

End Sub[code]
Nó báo lỗi ở dòng [code]Tam = Application.VLookup(v, Rng, J, False)
 
Upvote 0
Tìm tới chỗ chuyên để ghi code ấy, cho khúc trên vào đó.
Người ta làm giúp mình còn cho vào đó để khi mình nhận hàng còn biết lấy về.
Vậy mình đi hỏi cũng cố mà làm được như thế. Nếu không làm được như thế thì hết cách!
Mình làm được rồi. Cảm ơn
 
Upvote 0
Giúp đỡ code khong phải dùng thêm sheet phụ để lọc.
Nếu ở sheets "Dulieu" ô W2 = "" thì lấy toàn bộ dữ liệu
Dựa trên PacificPR mình thêm đoạn code để lọc dữ liệu theo ô W2. Vấn đề ở chổ là mình tạo ra 1 mãng phải ghi xuống sheets rồi lấy ngược lại mới được. Nhờ GPE giúp đỡ không phải dùng thêm sheet để lấy dữ liệu.
Mã:
Public Sub Laydulieu2()
    Dim sArr(), dArr(), arr(), sarr1(), darr1(), dArr2(), arr4(), dArr4(), sArr4()
    Dim Dic As Object, i As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String, s As Variant
Set Dic = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "

With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 12).Value
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Sheet1.[w2] = "" Then
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(sArr)
    Dic(sArr(i, 1)) = 1
Next i
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For i = 1 To UBound(sArr)
        If sArr(i, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(i, 4) <> Empty Then
                dArr(K, 2) = sArr(i, 3) & KT & sArr(i, 4) & " m"
            Else
                dArr(K, 2) = sArr(i, 3)
            End If
            dArr(K, 3) = sArr(i, 5): dArr(K, 4) = sArr(i, 6): dArr(K, 5) = sArr(i, 7)
            dArr(K, 6) = sArr(i, 8): dArr(K, 7) = sArr(i, 9): dArr(K, 8) = sArr(i, 10)
            dArr(K, 9) = sArr(i, 11)
        End If
    Next i
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:N10000").ClearContents
    .Range("A6:N10000").ClearFormats
    .Range("A6").Resize(K, 9) = dArr
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2
Else
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'loc ra theo dieu kien o W2
        sArr = Sheet1.Range("L4:W" & Sheet1.Range("L100000").End(xlUp).Row).Value
        ReDim dArr2(1 To UBound(sArr), 1 To 11)
        For n = 1 To UBound(sArr)
            If sArr(n, 12) = Sheet1.[w2] Then
                u = u + 1
               
                dArr2(u, 1) = sArr(n, 1)
                For J = 2 To 11
                    dArr2(u, J) = sArr(n, J)
                Next J
               
            End If
        Next n
       Sheet6.Range("A4:w10000").ClearContents
        If u = 0 Then
            MsgBox "Khong co du lieu"
            Exit Sub
        End If
      'ghi du lieu xuong sheet
        Sheet6.Range("A4").Resize(u, 11) = dArr2
       
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'su dung sheet phu
darr1 = Sheet6.Range("A4:K" & Sheet6.Range("A100000").End(xlUp).Row).Value



If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(darr1)
    Dic(darr1(i, 1)) = 1
Next i
ReDim dArr(1 To UBound(darr1) * 2, 1 To 9)
For Each v In Dic.keys()
    For i = 1 To UBound(darr1)
        If darr1(i, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                m = m + 1: Stt = Stt + 1
                dArr(m, 1) = Stt
                dArr(m, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(m, 2) = dArr(m, 2) & "; " & arr(1, J) & ": " & Tam
                Next J
            End If
            m = m + 1
            If darr1(i, 4) <> Empty Then
                dArr(m, 2) = darr1(i, 3) & KT & darr1(i, 4) & " m"
            Else
                dArr(m, 2) = darr1(i, 3)
            End If
            dArr(m, 3) = darr1(i, 5): dArr(m, 4) = darr1(i, 6): dArr(m, 5) = darr1(i, 7)
            dArr(m, 6) = darr1(i, 8): dArr(m, 7) = darr1(i, 9): dArr(m, 8) = darr1(i, 10)
            dArr(m, 9) = darr1(i, 11)
        End If
    Next i
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:N10000").ClearContents
    .Range("A6:N10000").ClearFormats
    .Range("A6").Resize(m, 9) = dArr
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2
End If
End Sub
 
Upvote 0
Giúp đỡ code khong phải dùng thêm sheet phụ để lọc.
Nếu ở sheets "Dulieu" ô W2 = "" thì lấy toàn bộ dữ liệu
Dựa trên PacificPR mình thêm đoạn code để lọc dữ liệu theo ô W2. Vấn đề ở chổ là mình tạo ra 1 mãng phải ghi xuống sheets rồi lấy ngược lại mới được. Nhờ GPE giúp đỡ không phải dùng thêm sheet để lấy dữ liệu.
Mã:
Public Sub Laydulieu2()
    Dim sArr(), dArr(), arr(), sarr1(), darr1(), dArr2(), arr4(), dArr4(), sArr4()
    Dim Dic As Object, i As Long, J As Long, K As Long, R As Long, KT As String
    Dim Rng As Range, v As Variant, Stt As Long, Sodem As Long, Tam As String, s As Variant
Set Dic = CreateObject("Scripting.Dictionary")
Application.ScreenUpdating = False
KT = ", K" & ChrW$(237) & "ch th" & ChrW$(432) & ChrW$(7899) & "c: "

With Sheets("Dulieu")
    Set Rng = .Range("B4", .Range("B65535").End(3)).Resize(, 6)
    arr = .Range("B3:G3").Value
    sArr = .Range("L4", .Range("L65535").End(3)).Resize(, 12).Value
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Sheet1.[w2] = "" Then
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(sArr)
    Dic(sArr(i, 1)) = 1
Next i
ReDim dArr(1 To UBound(sArr) * 2, 1 To 9)
For Each v In Dic.keys()
    For i = 1 To UBound(sArr)
        If sArr(i, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                K = K + 1: Stt = Stt + 1
                dArr(K, 1) = Stt
                dArr(K, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(K, 2) = dArr(K, 2) & "; " & arr(1, J) & ": " & Tam
                Next J
            End If
            K = K + 1
            If sArr(i, 4) <> Empty Then
                dArr(K, 2) = sArr(i, 3) & KT & sArr(i, 4) & " m"
            Else
                dArr(K, 2) = sArr(i, 3)
            End If
            dArr(K, 3) = sArr(i, 5): dArr(K, 4) = sArr(i, 6): dArr(K, 5) = sArr(i, 7)
            dArr(K, 6) = sArr(i, 8): dArr(K, 7) = sArr(i, 9): dArr(K, 8) = sArr(i, 10)
            dArr(K, 9) = sArr(i, 11)
        End If
    Next i
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:N10000").ClearContents
    .Range("A6:N10000").ClearFormats
    .Range("A6").Resize(K, 9) = dArr
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2
Else
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'loc ra theo dieu kien o W2
        sArr = Sheet1.Range("L4:W" & Sheet1.Range("L100000").End(xlUp).Row).Value
        ReDim dArr2(1 To UBound(sArr), 1 To 11)
        For n = 1 To UBound(sArr)
            If sArr(n, 12) = Sheet1.[w2] Then
                u = u + 1
              
                dArr2(u, 1) = sArr(n, 1)
                For J = 2 To 11
                    dArr2(u, J) = sArr(n, J)
                Next J
              
            End If
        Next n
       Sheet6.Range("A4:w10000").ClearContents
        If u = 0 Then
            MsgBox "Khong co du lieu"
            Exit Sub
        End If
      'ghi du lieu xuong sheet
        Sheet6.Range("A4").Resize(u, 11) = dArr2
      
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'su dung sheet phu
darr1 = Sheet6.Range("A4:K" & Sheet6.Range("A100000").End(xlUp).Row).Value



If Sheet1.[b4] = "" Then Exit Sub
For i = 1 To UBound(darr1)
    Dic(darr1(i, 1)) = 1
Next i
ReDim dArr(1 To UBound(darr1) * 2, 1 To 9)
For Each v In Dic.keys()
    For i = 1 To UBound(darr1)
        If darr1(i, 1) = v Then
            Sodem = Sodem + 1
            If Sodem = 1 Then
                m = m + 1: Stt = Stt + 1
                dArr(m, 1) = Stt
                dArr(m, 2) = Application.VLookup(v, Rng, 2, False)
                For J = 3 To 4
                    Tam = Application.VLookup(v, Rng, J, False)
                    If Tam <> Empty Then dArr(m, 2) = dArr(m, 2) & "; " & arr(1, J) & ": " & Tam
                Next J
            End If
            m = m + 1
            If darr1(i, 4) <> Empty Then
                dArr(m, 2) = darr1(i, 3) & KT & darr1(i, 4) & " m"
            Else
                dArr(m, 2) = darr1(i, 3)
            End If
            dArr(m, 3) = darr1(i, 5): dArr(m, 4) = darr1(i, 6): dArr(m, 5) = darr1(i, 7)
            dArr(m, 6) = darr1(i, 8): dArr(m, 7) = darr1(i, 9): dArr(m, 8) = darr1(i, 10)
            dArr(m, 9) = darr1(i, 11)
        End If
    Next i
    Sodem = 0
Next
With Sheets("ThamDinh")
    .Range("A6:N10000").ClearContents
    .Range("A6:N10000").ClearFormats
    .Range("A6").Resize(m, 9) = dArr
End With

Set Dic = Nothing
Application.ScreenUpdating = True
Sheet3.Activate
Call tinhtien2
Call dinhdang2
End If
End Sub
Anh đính kèm lại file. Nói lại nội dung làm nha. Lâu quá lên chưa hình dung lại được anh ạ
 
Upvote 0
Nhờ GPE gúp mình lấy số liệu từ sheet"dulieu" sang sheet"thamdinh" với.
Cách lấy số liệu: từ sheet"dulieu" qua sheets"thamdinh"
+ Đối với giá trị họ tên thì thê hiện Họ tên, Năm sinh, CMND (Nguyễn Văn A, Sinh năm 1987, CMND số 191514598)
+ Đối với giá trị tài sản: nếu cột kích thước có giá trị thi nối cột Tài sản và kích thước và "m" (Nhà cấp 4: Nhà móng BT; cột BTCT; tường chịu lực xây gạch; mái ngói, tôn; nền xi măng, không có khu phụ trong nhà , kích thước: 7.5 x 3.5 m).
Nhờ GPE giúp đỡ.
Nếu tôi làm thì định hướng của tôi là như thế này (do chưa rảnh nên tôi chưa giúp được):

Để đơn giản thì sử dụng 1 sheet làm mẫu Bảng kê chi tiết từng hộ (sử dụng thống nhất), khi nhập thông tin hộ xong nhấn nút nhập sẽ Insert thành sheet mới (với dữ liệu và tên sheet là hộ đó), đồng thời lưu dữ liệu vào sheet Nha_VKT_CayTrong và sheet Tổng hợp hộ.

Sẽ nhẹ nhàng hơn là dùng từng sheet hộ để tổng hợp vào biểu, làm cách trên thì các sheet hộ thống nhất về vị trí các Cell cần lấy dữ liệu, nếu muốn làm ngược lại thì cũng dễ dàng hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu tôi làm thì định hướng của tôi là như thế này (do chưa rảnh nên tôi chưa giúp được):

Để đơn giản thì sử dụng 1 sheet làm mẫu Bảng kê chi tiết từng hộ (sử dụng thống nhất), khi nhập thông tin hộ xong nhấn nút nhập sẽ Insert thành sheet mới (với dữ liệu và tên sheet là hộ đó), đồng thời lưu dữ liệu vào sheet Nha_VKT_CayTrong và sheet Tổng hợp hộ.

Sẽ nhẹ nhàng hơn là dùng từng sheet hộ để tổng hợp vào biểu, làm cách trên thì các sheet hộ thống nhất về vị trí các Cell cần lấy dữ liệu, nếu muốn làm ngược lại thì cũng dễ dàng hơn.
Em lưu trên 1 sheet data chung anh afh. Phần nhập liệu và chỉnh sửa thì em nhờ anh em GPE giúp đỡ làm được rồi. Bây giờ đang làm phần tổng hợp theo đợt của từng đối tượng và từng đợt anh afh.
 
Upvote 0
Em lưu trên 1 sheet data chung anh afh. Phần nhập liệu và chỉnh sửa thì em nhờ anh em GPE giúp đỡ làm được rồi. Bây giờ đang làm phần tổng hợp theo đợt của từng đối tượng và từng đợt anh afh.
Em nên làm mẫu 1 File, rồi mở Topic khác với tiêu đề là Dùng SheetForm để nhập liệu và lưu thành sheet mới (với tên sheet là họ tên ở tại Cell nào), như nội dung như bài 26, với 4 sheet như sau:

1/ 1 sheet Nha_VKT_CayTrong.
2/ 1 sheet Tổng hợp hộ (sheet này nên thêm cột tên dự án và cột đợt) để lưu dữ liệu từng đợt vào sheet theo dõi chung tất cả các dự án.
3/ 1 sheet mẫu Bảng kê chi tiết (từng hộ sử dụng thống nhất mẫu này), khi nhập thông tin của hộ vào sheet mẫu xong thì nhấn nút nhập dữ liệu nó sẽ lưu thông tin (cần theo dõi, tổng hợp) vào sheet Nha_VKT_CayTrong và sheet Tổng hợp hộ, đồng thời sẽ Insert thành sheet mới (với dữ liệu và tên sheet là hộ đó), như vậy: Khi nhập thông tin 32 hộ thì ta sẽ được 32 sheet hộ (với tên sheet Tab là tên hộ).
4/ 1 sheet theo dõi chung tất cả các dự án (nên thêm cột tên huyện, tên xã), mục đích dùng để tổng hợp, báo cáo hoặc trích lọc theo từng dự án theo huyện, xã hoặc theo đợt khi cần.

Nói thêm: Đa số các tỉnh theo dõi mỗi đợt riêng 1 File, khi cần tổng hợp tất cả các dự án theo đợt thì khó khăn vô cùng (mất rất nhiều thời gian) chưa kể tổng hợp tái định cư, tái định cư hộ phụ.
 
Lần chỉnh sửa cuối:
Upvote 0
Em nên làm mẫu 1 File, rồi mở Topic khác với tiêu đề là Dùng SheetForm để nhập liệu và lưu thành sheet mới (với tên sheet là họ tên ở tại Cell nào), như nội dung như bài 26, với 4 sheet như sau:

1/ 1 sheet Nha_VKT_CayTrong.
2/ 1 sheet Tổng hợp hộ (sheet này nên thêm cột tên dự án và cột đợt) để lưu dữ liệu từng đợt vào sheet theo dõi chung tất cả các dự án.
3/ 1 sheet mẫu Bảng kê chi tiết (từng hộ sử dụng thống nhất mẫu này), khi nhập thông tin của hộ vào sheet mẫu xong thì nhấn nút nhập dữ liệu nó sẽ lưu thông tin (cần theo dõi, tổng hợp) vào sheet Nha_VKT_CayTrong và sheet Tổng hợp hộ, đồng thời sẽ Insert thành sheet mới (với dữ liệu và tên sheet là hộ đó), như vậy: Khi nhập thông tin 32 hộ thì ta sẽ được 32 sheet hộ.
4/ 1 sheet theo dõi chung tất cả các dự án, mục đích dùng tổng hợp, báo cáo hoặc trích lọc theo dự án hoặc theo đợt khi cần.
Em nghỉ chỉ cần 4 sheet anh ah, chứ như anh nói 1 hộ 1 sheet chắc chết quá (1 dự án có khi hơn cả trăm hộ mà anh). Nên theo góp ý của anh em làm 1 sheet để in ra chi tiết cho 1 hộ nữa là ổn anh afh. (file em gửi cho anh có các sheets như "danh mục tài sản, data, và sheet thamdinh", em thêm 1 sheet chi tiết hộ gia đình nữa là được rồi anh afh. Cảm ơn anh đã góp ý
 
Upvote 0
Em nghỉ chỉ cần 4 sheet anh ah, chứ như anh nói 1 hộ 1 sheet chắc chết quá (1 dự án có khi hơn cả trăm hộ mà anh). Nên theo góp ý của anh em làm 1 sheet để in ra chi tiết cho 1 hộ nữa là ổn anh afh. (file em gửi cho anh có các sheets như "danh mục tài sản, data, và sheet thamdinh", em thêm 1 sheet chi tiết hộ gia đình nữa là được rồi anh afh. Cảm ơn anh đã góp ý
Nếu dùng 4 sheet cũng được, nhưng sheet theo dõi phải thiết kế lại để lưu đầy đủ thông tin của hộ, khi cần truy vấn hộ nào thì dùng sheet mẫu (Bảng kê chi tiết) truy vấn thông tin hộ đó lại.
 
Upvote 0
Nếu dùng 4 sheet cũng được, nhưng sheet theo dõi phải thiết kế lại để lưu đầy đủ thông tin của hộ, khi cần truy vấn hộ nào thì dùng sheet mẫu (Bảng kê chi tiết) truy vấn thông tin hộ đó lại.
Đúng rồi anh. Em có gửi file qua mail của anh đấy. Anh có rảnh xem giúp và góp ý giúp em với.
 
Upvote 0
Đúng rồi anh. Em có gửi file qua mail của anh đấy. Anh có rảnh xem giúp và góp ý giúp em với.
Là người trong ngành nên khi nhìn qua là anh biết cần phải làm cái gì.

Để rảnh anh sẽ nghiên cứu thiết kế lại sheet theo dõi chung, để lưu đầy đủ các thông tin của hộ trong sheet mẫu (Bảng kê chi tiết), như vậy mới có cái để truy vấn ngược lại.

Nhưng không biết em ở cấp tỉnh hay cấp huyện để anh biết mà thiết kế lại sheet theo dõi chung cho phù hợp.
 
Upvote 0
Là người trong ngành nên khi nhìn qua là anh biết cần phải làm cái gì.

Để rảnh anh sẽ nghiên cứu thiết kế lại sheet theo dõi chung, để lưu đầy đủ các thông tin của hộ trong sheet mẫu (Bảng kê chi tiết), như vậy mới có cái để truy vấn ngược lại.

Nhưng không biết em ở cấp tỉnh hay cấp huyện để anh biết mà thiết kế lại sheet theo dõi chung cho phù hợp.
Em ở cấp huyện thôi anh.
 
Upvote 0

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

Back
Top Bottom