Trích lọc dữ liệu theo nhiều điều kiện

Liên hệ QC

hic1802

Thành viên tiêu biểu
Tham gia
16/2/13
Bài viết
545
Được thích
34
Giới tính
Nam
Chào mọi người trên GPE,
Mình có 1 vấn đề cần nhờ mọi người giúp đỡ đó là trích lọc dữ liệu theo nhiều điều kiện:
Mình có 2 sheet : DHC và DHTC
DHC là các đơn hàng chung
DHTC là các đơn hàng ở cột trạng thái tích "x"
Mình muốn khi mình click vào nút "chuyển" thì các đơn hàng bên sheets "DHC" mà có cột trạng thái tích "x" sẽ chuyển sang bên sheets "DHTC" theo thứ tự tăng dần thời gian theo cột "Ngày Thành Công" ở sheets "DHC"
Tức là chuyển dữ liệu từ sheets "DHC" sang "DHTC" theo cột "trạng thái" và theo thứ tự tăng dần cột ngày "Ngày thành công" ở sheets "DHC"
 

File đính kèm

  • Book1.xlsx
    21.3 KB · Đọc: 10
Cột "Ngày Thành Công" nên để theo định dạng ngày thì thực hiện mới dễ, chứ để theo kiểu mm/dd ... thì sẽ khó khi sort.
 
Chào mọi người trên GPE,
Mình có 1 vấn đề cần nhờ mọi người giúp đỡ đó là trích lọc dữ liệu theo nhiều điều kiện:
Mình có 2 sheet : DHC và DHTC
DHC là các đơn hàng chung
DHTC là các đơn hàng ở cột trạng thái tích "x"
Mình muốn khi mình click vào nút "chuyển" thì các đơn hàng bên sheets "DHC" mà có cột trạng thái tích "x" sẽ chuyển sang bên sheets "DHTC" theo thứ tự tăng dần thời gian theo cột "Ngày Thành Công" ở sheets "DHC"
Tức là chuyển dữ liệu từ sheets "DHC" sang "DHTC" theo cột "trạng thái" và theo thứ tự tăng dần cột ngày "Ngày thành công" ở sheets "DHC"
Hàng tết có làm món nhậu được không :p
Mã:
Sub ABC()
  Dim sArr(), Res(), S, S2
  Dim i&, j&, k&, sRow&, sCol&
  Const Nam& = 2019
  With Sheets("DHC")
    i = .Range("B" & Rows.Count).End(xlUp).Row
    If i < 5 Then i = 5
    sArr = .Range("B5:K" & i).Value
  End With
  sRow = UBound(sArr): sCol = UBound(sArr, 2)
  ReDim Res(1 To sRow, 1 To sCol - 1)
  For i = 1 To sRow
    If UCase(sArr(i, 9)) = "X" Then
      k = k + 1
      For j = 1 To sCol - 2
        Res(k, j) = sArr(i, j)
      Next j
      S = Split(sArr(i, j + 1), " ")
      S2 = Split(S(0), "/")
      Res(k, j) = DateValue(Nam & "/" & S2(1) & "/" & S2(0)) + TimeValue(S(1))
    End If
  Next i
  With Sheets("DHTC")
    i = .Range("B" & Rows.Count).End(xlUp).Row
    If i > 1 Then Range("A2:J" & i).Clear
    If k Then
      .Range("C2").Resize(k).NumberFormat = "@"
      .Range("B2").Resize(k, sCol - 1) = Res
      .Range("B2").Resize(k, sCol - 1).Sort .Range("J2"), 1, Header:=xlNo
      .Range("A2") = 1
      .Range("A2").Resize(k).DataSeries
      .Range("J2").Resize(k).ClearContents
      .Range("A2").Resize(k, sCol - 1).Borders.LineStyle = 1
    End If
  End With
End Sub
 

File đính kèm

  • HopDong.xlsm
    29.3 KB · Đọc: 11
Hàng tết có làm món nhậu được không :p
Mã:
Sub ABC()
  Dim sArr(), Res(), S, S2
  Dim i&, j&, k&, sRow&, sCol&
  Const Nam& = 2019
  With Sheets("DHC")
    i = .Range("B" & Rows.Count).End(xlUp).Row
    If i < 5 Then i = 5
    sArr = .Range("B5:K" & i).Value
  End With
  sRow = UBound(sArr): sCol = UBound(sArr, 2)
  ReDim Res(1 To sRow, 1 To sCol - 1)
  For i = 1 To sRow
    If UCase(sArr(i, 9)) = "X" Then
      k = k + 1
      For j = 1 To sCol - 2
        Res(k, j) = sArr(i, j)
      Next j
      S = Split(sArr(i, j + 1), " ")
      S2 = Split(S(0), "/")
      Res(k, j) = DateValue(Nam & "/" & S2(1) & "/" & S2(0)) + TimeValue(S(1))
    End If
  Next i
  With Sheets("DHTC")
    i = .Range("B" & Rows.Count).End(xlUp).Row
    If i > 1 Then Range("A2:J" & i).Clear
    If k Then
      .Range("C2").Resize(k).NumberFormat = "@"
      .Range("B2").Resize(k, sCol - 1) = Res
      .Range("B2").Resize(k, sCol - 1).Sort .Range("J2"), 1, Header:=xlNo
      .Range("A2") = 1
      .Range("A2").Resize(k).DataSeries
      .Range("J2").Resize(k).ClearContents
      .Range("A2").Resize(k, sCol - 1).Borders.LineStyle = 1
    End If
  End With
End Sub
cái này mình vẫn thấy thừa cột J phải xóa đi, có cách nào ko cần phải có cột J đi mà nó vẫn sắp xếp được không?
Xin lỗi nếu đã hỏi câu hỏi khó.
 
Web KT
Back
Top Bottom