Làm thế nào trích xuất dữ liệu từ sheet 1 sang sheet 2?

Liên hệ QC

TRA KHUC RIVER

Thành viên thường trực
Tham gia
3/10/07
Bài viết
392
Được thích
138
Mình có file excel đính kèm, mình muốn chiết xuất dữ liệu ở sheet 1 đưa sang sheet 2:
- Cụ thể là ở sheet 1 cột ma_vt có: 10M2,10M3... nhưng dữ liệu này bị trùng rất nhiều, mình muốn ở sheet 2 lấy dữ liệu cột ma_vt ở sheet 1 nhưng mỗi mã chỉ lấy 1 giá trị, chẳng hạn ở sheet 1 có 5 giá trị 10M2 thì ở sheet 2 chỉ lấy 1 giá trị 10M2 thôi. Vậy phải làm cách nào? Bình thường mình dùng sort để nhóm dữ liệu trùng nhau lại rồi copy cột ma_vt sang sheet 2, những mã nào trùng nhau thì xóa đi. Tuy nhiên cách này rất mất thời gian đối với file lớn.
 

File đính kèm

Mình có file excel đính kèm, mình muốn chiết xuất dữ liệu ở sheet 1 đưa sang sheet 2:
- Cụ thể là ở sheet 1 cột ma_vt có: 10M2,10M3... nhưng dữ liệu này bị trùng rất nhiều, mình muốn ở sheet 2 lấy dữ liệu cột ma_vt ở sheet 1 nhưng mỗi mã chỉ lấy 1 giá trị, chẳng hạn ở sheet 1 có 5 giá trị 10M2 thì ở sheet 2 chỉ lấy 1 giá trị 10M2 thôi. Vậy phải làm cách nào? Bình thường mình dùng sort để nhóm dữ liệu trùng nhau lại rồi copy cột ma_vt sang sheet 2, những mã nào trùng nhau thì xóa đi. Tuy nhiên cách này rất mất thời gian đối với file lớn.
Bạn dùng chưc năng Advanced Fillter >> Chọn Unique record only để lấy ra bảng dữ liệu không trùng.
 
Cụ thể là làm như thế nào hả bạn? Cho mình hỏi luôn nếu mình muốn đếm giá trị 10M2 hay 10M3 xuất hiện bao nhiêu lần thì phải dùng hàm gì hả bạn?
 
Cụ thể là làm như thế nào hả bạn? Cho mình hỏi luôn nếu mình muốn đếm giá trị 10M2 hay 10M3 xuất hiện bao nhiêu lần thì phải dùng hàm gì hả bạn?

  1. Chọn menu Data >> Filter >> Advanced Filter.
  2. Click chọn Copy to another location, List rank: tô từ A2 đến A314 của mã_vt, phần Copy to chọn đại 1 cell nào đó để lọc danh sách không trùng (chẳng hạn F2), Click chọn Unique record only.
  3. Nhấn OK là xong.
  4. Để đếm thì dùng countif là được VD: =COUNTIF(A2:A314;"10M3") để đếm có bao nhiêu 10M3 trong đoạn từ A2:A314.
Thân!
 
Cụ thể là làm như thế nào hả bạn? Cho mình hỏi luôn nếu mình muốn đếm giá trị 10M2 hay 10M3 xuất hiện bao nhiêu lần thì phải dùng hàm gì hả bạn?
Cụ thể là... lý ra bạn phải tự nghiên cứu, vì nó khá dể!
Tôi làm 1 lần cho bạn thấy nhé:
1> Chọn sheet 2
2> Vào menu Data\Filter\Advanced Filter
a) Mục Action, chọn "Copy to another location"
b) Khung List range, quét chọn cột A của sheet 1
c) Khung Copy to, chọn vào cell B1 của sheet 2
d) Check vào mục "Unique records only"
3> OK là xong!
Xem file đính kèm
 

File đính kèm

  1. Chọn menu Data >> Filter >> Advanced Filter.
  2. Click chọn Copy to another location, List rank: tô từ A2 đến A314 của mã_vt, phần Copy to chọn đại 1 cell nào đó để lọc danh sách không trùng (chẳng hạn F2), Click chọn Unique record only.
  3. Nhấn OK là xong.
  4. Để đếm thì dùng countif là được VD: =COUNTIF(A2:A314;"10M3") để đếm có bao nhiêu 10M3 trong đoạn từ A2:A314.
Thân!

Nếu mình muốn đếm trong cột ma_vt có tất cả bao nhiêu giá trị thì dùng hàm gì hả bạn?
 
Ý mình là đếm ở cột ma_vt có bao nhiêu giá trị những giá trị trùng nhau thì chỉ xem là 1
 
Nếu mình muốn đếm trong cột ma_vt có tất cả bao nhiêu giá trị thì dùng hàm gì hả bạn?
Hoặc bạn cũng có thể dùng code để giải quyết, vừa lấy được danh sách vừa đếm được bao nhiêu mã (Code này được viết bởi anh Ndu)
Mã:
Sub Ma()
  Sheet2.[C4:D2000].ClearContents
  With Range(Sheet1.[a1], Sheet1.[a65536].End(xlUp))
    .AdvancedFilter 1, , , True
    .Offset(1).Copy: Sheet2.Range("D2").PasteSpecial 3
  End With
  Sheet1.ShowAllData
  With Range(Sheet2.[D2], Sheet2.[D4].End(xlDown))
    .Offset(, -1).Value = Evaluate("=Row(R1:R2000)")
  End With
End Sub
 

File đính kèm

Bạn ơi mình vào view code rồi chép đoạn code trên vào nhưng sao không chạy được hả bạn?
 
Bạn ơi mình vào view code rồi chép đoạn code trên vào nhưng sao không chạy được hả bạn?
Code này mình đã thử làm nhiều lần rồi, vẫn chạy tốt mà, bạn coi lại tên sheet đúng không. Bạn chép code vào đâu và chạy như thế nào ? Bạn có thể nói rõ hơn được không?
Thân
 
Bạn hướng dẫn cụ thể cho mình với, mình không rành về VBA lắm.
 
Bạn vào cửa sổ VBA xong vào Insert\Module, rồi dán đoạn code đó vào. Đóng cửa sổ VBA, bạn vẽ shape nào đó, đặt tên cho shape và cuối cùng click chuột phải chọn Assign macro... chọn tên macro là Ma nhấn OK, xong bạn chạy macro này bằng cách click vào shape vừa tạo là OK, bạn lưu ý là phải chỉnh code lại sao cho tương ứng với file nhé.
Nếu như bạn sử dụng file cũ của bạn thì không cần phải chỉnh.
Thân
 
Bạn ơi mình vào view code rồi chép đoạn code trên vào nhưng sao không chạy được hả bạn?
Bạn đưa dử liệu thật của bạn lên đây rồi người ta làm luôn cho bạn 1 lần, có phải là khỏe hơn không?
Nếu file có nhiều dòng, dung lượng lớn, bạn xóa bớt, chừa lại khoảng 100 dòng rồi gữi lên (ghi chú cho người ta biết file thật khoảng bao nhiêu dòng)
 
Mong các bạn giúp mình lọc tự động dữ liệu khách hàng từ sheetLUUTRU sang sheetDAMUA và sheetCHUAMUA. Xin cảm ơn các bạn trước.mình có gởi file kèm theo.
 
Lần chỉnh sửa cuối:
Mong các bạn giúp mình lọc tự động dữ liệu khách hàng từ sheetLUUTRU sang sheetDAMUA và sheetCHUAMUA. Xin cảm ơn các bạn trước.mình có gởi file kèm theo.
Bạn dùng AutoFilter, lọc lấy điều kiện NonBlanks cho KH đã mua và Blanks cho KH chưa mua ---> Thế thôi! ---> Nếu viết code để tự động hóa thì cũng dựa trên nguyên tắc này
 
to ndu96081631
Mình muốn tự động hóa nhưng lại không rành về code bạn có thể giúp mình được không.Mình cảm ơn bạn nhiều.
 
to ndu96081631
Mình muốn tự động hóa nhưng lại không rành về code bạn có thể giúp mình được không.Mình cảm ơn bạn nhiều.
Thông thường cái gì bạn có thể làm bằng tay được thì code cũng sẽ làm được!
Cách đơn giản nhất là bạn cứ thao tác bằng tay, đồng thời bật chức năng Record macro để thu lại những gì bạn đã làm ---> Thế là thành 1 code rồi ---> Mai này muốn lập lại thao tác, cứ Alt + F8, chọn tên macro rồi RUN là xong!
Đây là đoạn code từ Record macro mà ra:
PHP:
Sub Loc()
  Sheets("damua").Range("A1").CurrentRegion.Clear
  Sheets("chuamua").Range("A1").CurrentRegion.Clear
  With Range(Sheets("luutru").[A1], Sheets("luutru").[A65536].End(xlUp)).Resize(, 7)
    .AutoFilter 1, "<>": .AutoFilter 3, "<>"
    .Copy Destination:=Sheets("damua").Range("A1")
    .AutoFilter 1, "<>": .AutoFilter 3, "="
    .Copy Destination:=Sheets("chuamua").Range("A1")
    .AutoFilter
  End With
End Sub
Mở file, nhấn nút là chạy!
 

File đính kèm

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

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

Back
Top Bottom