Xác định vị trí của dữ liêu!

Liên hệ QC

trandinhhung

Thành viên mới
Tham gia
17/8/07
Bài viết
14
Được thích
4
Chào pà con,
Mình có vấn đề này cần giúp đỡ:
- Giả sử có bảng dữ liệu sau:
Nội dung ngày nhập
a 1/3/2009
b 3/3/2009
c 4/3/2009
d 1/3/2009
- Yêu cầu: nhặt ra các nội dung có ngày nhập là 1/3/2009
- Đáp án (thể hiện ở 1 sheet khác):
Ngày nhập 1/3/2009 2/3/2009 3/3/2009
Nội dung a
d

Dùng cách nào để có đáp án này nhỉ???
Giúp mình với!
Thanks
 
Chào pà con,
Mình có vấn đề này cần giúp đỡ:
- Giả sử có bảng dữ liệu sau:
Nội dung ngày nhập
a 1/3/2009
b 3/3/2009
c 4/3/2009
d 1/3/2009
- Yêu cầu: nhặt ra các nội dung có ngày nhập là 1/3/2009
- Đáp án (thể hiện ở 1 sheet khác):
Ngày nhập 1/3/2009 2/3/2009 3/3/2009
Nội dung a
d

Dùng cách nào để có đáp án này nhỉ???
Giúp mình với!
Thanks
Dùng AutoFilter theo từng điều kiện, xong copy và paste qua nơi khác là cách nhẹ nhàng nhất
Còn nếu muốn công thức, bạn đưa file lên đi!
 
Thêm 1 tham khảo

PHP:
Option Explicit
Sub CopyForDate()
 Dim Rng As Range, sRng As Range, aRng As Range, Clls As Range
 Dim Sh As Worksheet, MyAdd As String
 
 Set Sh = Worksheets("DuLieu")
 Set Rng = Sh.Range(Sh.[c3], Sh.[c65500].End(xlUp))
 Rng.NumberFormat = "m/d/yyyy"
 Sheets("KetQua").Select
 Set aRng = Range([b2], [iv2].End(xlToLeft))
  aRng.Offset(1).Resize(99).Clear
 For Each Clls In aRng
    Set sRng = Rng.Find(Format(Clls.Value, "Short Date"), , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyAdd = sRng.Address
        Do
            Cells(65500, Clls.Column).End(xlUp).Offset(1).Value = sRng.Offset(, -1).Value
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
    End If
 Next Clls
 Rng.NumberFormat = "[$-409]d-mmm-yy;@"
End Sub
Chú ý: Các tên Sheets mình đã đổi cho đạt chuẩn rồi đó nha.
 
Tôi làm thử, bạn xem file đính kèm có đúng ý bạn không nha! (làm bằng công thức)
Cám ơn bạn nhiều. Kết quả đúng như mình mong đợi.
Tuy nhiên để có thể ứng dụng cho việc khác bạn có thể giải thích giúp mình ý tưởng để hoàn thành công việc được chứ :-=.
Còn các hàm chắc mình phải xem thêm phần help thì mới hiểu hơn đặc biệt là cách bạn ghán name DS và VT.Mình chưa sử dung bao giờ.
Rất cám ơn bạn
 
PHP:
Option Explicit
Sub CopyForDate()
 Dim Rng As Range, sRng As Range, aRng As Range, Clls As Range
 Dim Sh As Worksheet, MyAdd As String
 
 Set Sh = Worksheets("DuLieu")
 Set Rng = Sh.Range(Sh.[c3], Sh.[c65500].End(xlUp))
 Rng.NumberFormat = "m/d/yyyy"
 Sheets("KetQua").Select
 Set aRng = Range([b2], [iv2].End(xlToLeft))
  aRng.Offset(1).Resize(99).Clear
 For Each Clls In aRng
    Set sRng = Rng.Find(Format(Clls.Value, "Short Date"), , xlFormulas, xlWhole)
    If Not sRng Is Nothing Then
        MyAdd = sRng.Address
        Do
            Cells(65500, Clls.Column).End(xlUp).Offset(1).Value = sRng.Offset(, -1).Value
            Set sRng = Rng.FindNext(sRng)
        Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
    End If
 Next Clls
 Rng.NumberFormat = "[$-409]d-mmm-yy;@"
End Sub
Chú ý: Các tên Sheets mình đã đổi cho đạt chuẩn rồi đó nha.
Em thì dùng AutoFilter với 1 vòng lập
PHP:
Sub Loc()
  Dim Clls As Range
  For Each Clls In Sheet2.Range("B2:H2")
    Range(Clls.Offset(1), Clls.Offset(1).End(xlDown)).ClearContents
    With Sheet1.Range("A2").CurrentRegion
      .AutoFilter 3, Clls.Text
      .Offset(1, 1).Resize(, 1).SpecialCells(12).Copy
      Clls.Offset(1).PasteSpecial 3
    End With
  Next
  Sheet1.ShowAllData
  Sheet1.AutoFilterMode = False
End Sub
 

File đính kèm

  • LoctheoNgay_02.xls
    25 KB · Đọc: 28
Về tốc độ thì không thua kém nhau là mấy, chắc vậy!?!
NDU thử với 1 siêu thị xem sao? Xin cảm ơn & chờ đó. . . .--=0
Toàn cao thủ!
Nói riêng với NDU rằng m đang cố gắng hiểu các hàm bạn gán mà không xong.
Giải thích cho mình được không?
Cám ơn rất nhiều
 
Toàn cao thủ!
Nói riêng với NDU rằng m đang cố gắng hiểu các hàm bạn gán mà không xong.
Giải thích cho mình được không?
Cám ơn rất nhiều
Tự học mà không được thì phải nhờ thôi!
Yêu cầu thì tương tự các bạn giúp mình vậy!
Thanks
 

File đính kèm

  • Centre_Daily Progress Report_CWD_VNT_3Mar2009.rar
    162.2 KB · Đọc: 74
Tự học mà không được thì phải nhờ thôi!
Yêu cầu thì tương tự các bạn giúp mình vậy!
Thanks
Bạn phải nói rõ hơn 1 chút, vì file mới này hoàn toàn khác với file ví dụ ban đầu ---> Nhìn vào dử liệu, phần ngày tháng xem như tạm hiểu... Còn phần dử liệu cần lọc.. cụ thể là bạn muốn lọc lấy CÁI GÌ ra?
 
Bạn phải nói rõ hơn 1 chút, vì file mới này hoàn toàn khác với file ví dụ ban đầu ---> Nhìn vào dử liệu, phần ngày tháng xem như tạm hiểu... Còn phần dử liệu cần lọc.. cụ thể là bạn muốn lọc lấy CÁI GÌ ra?
Thanks,
dữ liệu mình cần lọc là cột B (new site name), còn vẫn lọc theo ngày tháng với từng sự kiện cụ thể như ở côt A và B (sheet Mar).
Bạn có thể giải thích giúp mình mấy hàm bạn dùng và ý tưởng đặt name function được chứ.

Mình cố gắng hiểu name VT của bạn mà không được?
Vào web đọc về hàm offset và ví dụ làm valadite list với sự kết hợp của offset
Vẫn không thủng? Đặc biệt là biến logic của hàm if trong name VT!
Mong bạn chỉ giáo để có thể tự thực hiện công việc.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Thanks,
dữ liệu mình cần lọc là cột B (new site name), còn vẫn lọc theo ngày tháng với từng sự kiện cụ thể như ở côt A và B (sheet Mar).
Bạn có thể giải thích giúp mình mấy hàm bạn dùng và ý tưởng đặt name function được chứ.
Cám ơn nhé.
Bạn xem thử file này có đáp ứng được yêu cầu của bạn không nhé. Trong Code tôi chưa tinh chỉnh nên tạm thời mới chỉ làm cho trường hợp dữ liệu cụ thể này thôi. Để làm tổng quát chắc phải sửa lại đôi chút cho phù hợp.
 

File đính kèm

  • Centre_Daily Progress Report_CWD_VNT_3Mar2009.rar
    174.9 KB · Đọc: 34
Cám ơn bạn rất nhiều. Đã đạt kết quả như mong muốn rồi bạn ạ.
Thực ra mình sẽ gặp bài toán này đôi lần nữa với tên các trường khác nhau nhưng rất muốn tham khảo ý tưởng của NUD trong việc xử lý dữ liệu của file vidu.excel mà thôi.
Cám ơn các bạn đã giúp.
 
Web KT
Back
Top Bottom