Chuyển dữ liệu cần thiết từ sheet 1 sang sheet " ket qua"

Liên hệ QC

1712_hana

Thành viên chính thức
Tham gia
22/9/18
Bài viết
67
Được thích
5
Em xin lỗi vì không biết đặt tiêu đề sao cho đúng,
Nếu ad thấy sai thì hướng dẫn em viết lại ạ.
Em có sheet 1 là bảng tổng hợp, giờ em cần lấy dữ liệu bôi vàng copy sang sheet " ket qua"
Những dữ liệu em bôi vàng là dữ liêu em muốn copy sang ạ,
Rất mong mọi người giúp đỡ em,
 

File đính kèm

  • T92.xlsx
    3.4 MB · Đọc: 33
mọi người giúp đỡ em với ạ
 
Upvote 0
1596278095430.png

Em copy sang sheet mới. Nội dung chỉ cần 3 cột thế này ạ
 
Upvote 0
Dạ do chắc bác chưa xem file, cái nội dung này của em nó rất nhiều, nếu copy thì mất thời gian lắm ạ.
Bạn nói bôi vàng thì người ta chú ý chỗ bôi vàng chứ hơi đâu xem các chỗ còn lại. Bạn muốn được giúp thì mô tả chi tiết, diễn giải cho được quy tắc lấy số liệu. Chẳng lẽ giúp bạn mà phải đi đoán mò số liệu cần lấy giúp bạn sao?
 
Upvote 0
Bạn nói bôi vàng thì người ta chú ý chỗ bôi vàng chứ hơi đâu xem các chỗ còn lại. Bạn muốn được giúp thì mô tả chi tiết, diễn giải cho được quy tắc lấy số liệu. Chẳng lẽ giúp bạn mà phải đi đoán mò số liệu cần lấy giúp bạn sao?
dạ rất xin lỗi anh/chị
do em mô tả chưa chi tiết.
Hiện tại bảng của em rất nhiều dữ liệu, Cột AE là đầu đơn chứa các dữ liệu như hình dưới
Giờ em muốn copy các dữ liệu này sang sheet " ket qua" tương ứng với các vị trí em đánh dấu.
Cột AE có rất nhiều đầu lệnh cứ 1 đầu lệnh mà có những dữ liệu này thì đều copy sang sheet 'ket qua"
1596421680944.png


1596421760808.png
 
Upvote 0
dạ rất xin lỗi anh/chị
do em mô tả chưa chi tiết.
Hiện tại bảng của em rất nhiều dữ liệu, Cột AE là đầu đơn chứa các dữ liệu như hình dưới
Giờ em muốn copy các dữ liệu này sang sheet " ket qua" tương ứng với các vị trí em đánh dấu.
Cột AE có rất nhiều đầu lệnh cứ 1 đầu lệnh mà có những dữ liệu này thì đều copy sang sheet 'ket qua"
View attachment 242262


View attachment 242263
Dựa vào đâu để biết kết quả sai hay đúng vậy? Công nhận nơi bạn làm việc khoa học ghê luôn
 

File đính kèm

  • T92.xlsx
    3.8 MB · Đọc: 13
Upvote 0
Dựa vào đâu để biết kết quả sai hay đúng vậy?
Dạ, đây là file tổng hợp của nhiều người lại với nhau. Mà em chỉ cần những dữ liệu như trên để làm việc của mình.
Anh có thể cho em xin file để làm được ra bảng đó đc ko ạ? tháng nào em cũng cần tổng hợp lại như vậy.
Công nhận nơi bạn làm việc khoa học ghê luôn
Anh có thể nói rõ hơn để e học tập và làm việc tốt hơn đc không ạ.
 
Upvote 0
Em xin lỗi vì không biết đặt tiêu đề sao cho đúng,
Nếu ad thấy sai thì hướng dẫn em viết lại ạ.
Em có sheet 1 là bảng tổng hợp, giờ em cần lấy dữ liệu bôi vàng copy sang sheet " ket qua"
Những dữ liệu em bôi vàng là dữ liêu em muốn copy sang ạ,
Rất mong mọi người giúp đỡ em,
Dữ liệu quá lung tung
Mã:
Sub LungTung()
  Dim sArr(), Res()
  Dim sRow&, fRow&, eRow&
  Dim i&, i2&, k&, c&, j&, j2&, jC&
  Const size$ = "Size range"

  With Sheets("Sheet1")
    sArr = .Range("A2:AE" & .Range("A" & Rows.Count).End(xlUp).Row).Value
  End With
  sRow = UBound(sArr)
  ReDim Res(1 To sRow, 1 To 3)
  For i = 1 To sRow
    If sArr(i, 1) = size Then
      fRow = 0
      For i2 = i + 1 To sRow
        If sArr(i2, 1) <> Empty And fRow = 0 Then fRow = i2
        If sArr(i2, 1) = Empty And fRow > 0 Then
          eRow = i2 - 1: Exit For
        End If
      Next i2
      For c = 3 To 30
        If sArr(i, c) = "outcarton dimension" Then
          For j = c To 30
            If sArr(i, j) = "outcarton dimension" Then
              For j2 = j + 1 To 30
                If sArr(i, j2) = "Cartons" Then
                  jC = j2:         Exit For
                End If
              Next j2
              For i2 = fRow To eRow
                If sArr(i2, j - 1) <> Empty Then
                  k = k + 1
                  Res(k, 1) = sArr(i2, 31)
                  If sArr(i2, j) = Empty Then
                    Res(k, 2) = sArr(i2, j - 1)
                  Else
                    Res(k, 2) = sArr(i2, j)
                  End If
                  Res(k, 3) = sArr(i2, jC)
                End If
              Next i2
            End If
          Next j
          i = i2
        ElseIf sArr(i, c) = "Empty Innerbox dimension" Then
          For j = c + 1 To 30
            If sArr(i, j) = "Total:" Then
              jC = j:    Exit For
            End If
          Next j
          For i2 = fRow To eRow
            If sArr(i2, c) <> Empty Then
              k = k + 1
              Res(k, 1) = sArr(i2, 31)
              Res(k, 2) = sArr(i2, c)
              Res(k, 3) = sArr(i2, jC)
            End If
          Next i2
          i = i2
        End If
      Next c
    End If
  Next i
  With Sheets("Ket qua")
    i = .Range("A" & Rows.Count).End(xlUp).Row
    If i > 1 Then .Range("A2:C" & i).ClearContents
    If k Then .Range("A2").Resize(k, 3) = Res
  End With
End Sub
 
Upvote 0
Dạ, đây là file tổng hợp của nhiều người lại với nhau. Mà em chỉ cần những dữ liệu như trên để làm việc của mình.
Anh có thể cho em xin file để làm được ra bảng đó đc ko ạ? tháng nào em cũng cần tổng hợp lại như vậy.

Anh có thể nói rõ hơn để e học tập và làm việc tốt hơn đc không ạ.
Bạn phải giải thích rõ quy luật để lấy dữ liệu, chứ nếu nói là lấy các ô tô màu thì bạn phải tô hết người khác mới viết code theo màu được.
Hiện tại bảng của em rất nhiều dữ liệu, Cột AE là đầu đơn chứa các dữ liệu như hình dưới
Giờ em muốn copy các dữ liệu này sang sheet " ket qua" tương ứng với các vị trí em đánh dấu.
Cột AE có rất nhiều đầu lệnh cứ 1 đầu lệnh mà có những dữ liệu này thì đều copy sang sheet 'ket qua"
"Mò thí thí", hên thì trúng, trật thì thua.
 

File đính kèm

  • T92.rar
    1.9 MB · Đọc: 6
Upvote 0
Dữ liệu quá lung tung

Dạ đúng là dữ liệu em lung tung thật. em gộp từ nhiều người lại nên không có bảng chuẩn.
Bác làm vậy thì gần đúng rồi ạ. cái phần
Empty Innerbox dimension
nó lại nằm ở cả 2 cột C và D nên em thấy cái bảng bác làm mới ra đc cột C thôi ạ.
Bài đã được tự động gộp:

Bạn phải giải thích rõ quy luật để lấy dữ liệu, chứ nếu nói là lấy các ô tô màu thì bạn phải tô hết người khác mới viết code theo màu được.

"Mò thí thí", hên thì trúng, trật thì thua.
Quy Luật như bác làm là đúng rồi ạ.
Chỉ thiếu 1 phần nữa : phần "Empty Innerbox dimension" nằmở 2cột khác nhau nữa thôiạ
1596438444650.png
 
Lần chỉnh sửa cuối:
Upvote 0
Quy Luật như bác làm là đúng rồi ạ.
Chỉ thiếu 1 phần nữa : phần "Empty Innerbox dimension" nằmở 2cột khác nhau nữa thôiạ
Tìm được 11924 dòng kết quả.
Đến đây là thua luôn rồi. Dữ liệu nằm lung tung dò tìm "lòi con mắt".
 

File đính kèm

  • T92_V2.rar
    1.9 MB · Đọc: 9
Upvote 0
Tìm được 11924 dòng kết quả.
Đến đây là thua luôn rồi. Dữ liệu nằm lung tung dò tìm "lòi con mắt".
Em đã code xong từ sớm nhưng không muốn đưa code lên vì căn bản là không ai biết code đã lấy đúng và đủ dữ liệu hay chưa, không có cơ sở để kiểm tra. Không lẽ ngồi dò từng PO à.
 
Upvote 0
Tìm được 11924 dòng kết quả.
Đến đây là thua luôn rồi. Dữ liệu nằm lung tung dò tìm "lòi con mắt".
Dạ em hiểu vấn đề rồi ạ, Em đang đang thống báo để mọi người làm chung 1 mẫu.
Em cám ơn nhiều ạ.
Bài đã được tự động gộp:

Em đã code xong từ sớm nhưng không muốn đưa code lên vì căn bản là không ai biết code đã lấy đúng và đủ dữ liệu hay chưa, không có cơ sở để kiểm tra. Không lẽ ngồi dò từng PO à.
bên em sẽ nhập những dữ liệu trong bảng này vào hệ thống, sau đó phải trích rút file trên hệ thống về để kiểm tra xem những dữ liệu nhập vào đã chính xác so với bảng này hay không.
 
Upvote 0
Bài đã được tự động gộp:


Quy Luật như bác làm là đúng rồi ạ.
Chỉ thiếu 1 phần nữa : phần "Empty Innerbox dimension" nằmở 2cột khác nhau nữa thôiạ
View attachment 242280
Chỉnh lại
Mã:
Sub QuaLungTung()
  Dim sArr(), Res()
  Dim sRow&, fRow&, eRow&
  Dim i&, i2&, k&, c&, j&, j2&, jC&
  Const size$ = "Size range"

  With Sheets("Sheet1")
    sArr = .Range("A2:AE" & .Range("A" & Rows.Count).End(xlUp).Row).Value
  End With
  sRow = UBound(sArr)
  ReDim Res(1 To sRow, 1 To 3)
  For i = 1 To sRow
    If sArr(i, 1) = size Or sArr(i, 2) = size Then
      fRow = 0
      For i2 = i + 1 To sRow
        If (sArr(i2, 1) <> Empty Or sArr(i2, 2) <> Empty) And fRow = 0 Then fRow = i2
        If sArr(i2, 1) = Empty And sArr(i2, 2) = Empty And fRow > 0 Then
          eRow = i2 - 1: Exit For
        End If
      Next i2
      For c = 3 To 30
        If sArr(i, c) = "outcarton dimension" Then
          For j = c + 1 To 30
            If sArr(i, j) = "Cartons" Then
              jC = j:         Exit For
            End If
          Next j
          For i2 = fRow To eRow
            If sArr(i2, c) <> Empty Or sArr(i2, c - 1) <> Empty Then
              k = k + 1
              Res(k, 1) = sArr(i2, 31)
              If sArr(i2, c) = Empty Then
                Res(k, 2) = sArr(i2, c - 1)
              Else
                Res(k, 2) = sArr(i2, c)
              End If
              Res(k, 3) = sArr(i2, jC)
            End If
          Next i2
        ElseIf sArr(i, c) = "Empty Innerbox dimension" Then
          For j = c + 1 To 30
            If sArr(i, j) Like "Total?" Then
              jC = j:    Exit For
            End If
          Next j
          For i2 = fRow To eRow
            If sArr(i2, c) <> Empty Then
              k = k + 1
              Res(k, 1) = sArr(i2, 31)
              Res(k, 2) = sArr(i2, c)
              For j = c + 1 To 20
                If Len(sArr(i2, j)) Then
                  Res(k, 3) = sArr(i2, j): Exit For
                End If
              Next j
            End If
          Next i2
          Exit For
        End If
      Next c
      i = eRow
    End If
  Next i
  With Sheets("Ket qua")
    i = .Range("A" & Rows.Count).End(xlUp).Row
    If i > 1 Then .Range("A2:C" & i).ClearContents
    If k Then .Range("A2").Resize(k, 3) = Res
  End With
End Sub
Cần hạ bậc lương người tạo file nầy
 
Upvote 0
Web KT

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

Back
Top Bottom