Các câu hỏi về lọc ra danh sách duy nhất (loại bỏ dữ liệu trùng) (1 người xem)

Liên hệ QC

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

Chào bạn,
Muốn có kết quả như bạn cần thì sử dụng chức năng advanced filter nhé, đơn giản lắm. Bạn nghiên cứu nha.
 
Dùng công thức thì thế này bạn nhé, dạng bài này có rất nhiều trên diễn đàn mà! Xem file đính kèm nhé!
 

File đính kèm

Giờ em muốn kết quả ở 1 sheet khác cơ. Nên chức năng advanced filter trong trường hợp này chưa phát huy tác dụng.

bạn để trỏ chuột tới sheet cần lọc và sau đó lọc bình thường thôi có đâu mà chưa có tác dụng, bạn làm thừ đi nha

bạn xem kết quả tui lọc có đúng theo ý của bạn không, tui dùng addvan filter
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Dùng công thức thì thế này bạn nhé, dạng bài này có rất nhiều trên diễn đàn mà! Xem file đính kèm nhé!
Name DK của bạn nên sửa thành vầy thì mới ổn:
PHP:
=IF(DL="","",IF(MATCH(DL,DL,0)=ROW(INDIRECT("1:"&ROWS(DL))),MATCH(DL,DL,0),""))
Lỡ trong vùng dữ liệu có cell rổng thì sao?
------------
Ngoài ra xin nói thêm: Với dạng bài toán này thì kể cả dùng code hay công thức hoặc Advanced Filter đều không hay bằng dùng PivotTable vì những lý do:
- Dễ thao tác (chỉ mấy cái click chuột)
- Học thao tác PivotTable dù sao vẫn nhanh hơn so với học viết code
- PivotTable cũng có khả năng cập nhật khi dữ liệu nguồn thay đổi (bẳng cách click phải vào PV và chọn Refresh Data)
- File rất nhẹ nhàng so với khi dùng công thức vì chẳng phải tính toán
vân vân
 
Lần chỉnh sửa cuối:
Mở thêm vùng dữ liệu thì bạn có thể sửa name DL thành :
PHP:
=OFFSET(Sheet1!$B$3;;;COUNTA(Sheet1!$B$3:$B$1000);)
(Mấy chiêu này bạn search bài của thầy Ndu và anhtuan1066 sẽ thấy rất nhiều kiểu lọc hay lắm đó!)
 
Mở thêm vùng dữ liệu thì bạn có thể sửa name DL thành :
PHP:
=OFFSET(Sheet1!$B$3;;;COUNTA(Sheet1!$B$3:$B$1000);)
(Mấy chiêu này bạn search bài của thầy Ndu và anhtuan1066 sẽ thấy rất nhiều kiểu lọc hay lắm đó!)
Nếu dữ liệu có cell rổng thì name này cũng sai luôn
 
Nếu vậy thì sửa name DL thành thế này,mong thầy chỉ giáo thêm :
PHP:
=OFFSET(Sheet1!$B$3;;;MAX(IF(LEN(Sheet1!$B$3:$B$1000)<>0;ROW(Sheet1!$B$3:$B$1000);""));)
Công thức mảng như vậy sẽ rất nặng! Vầy ngon hơn:
PHP:
=OFFSET(Sheet1!$B$3,,,MATCH(REPT("z",255),Sheet1!$B$3:$B$1000),)
Đây là công thức thường nên tốc độ nhanh hơn
 
Công thức mảng như vậy sẽ rất nặng! Vầy ngon hơn:
PHP:
=OFFSET(Sheet1!$B$3,,,MATCH(REPT("z",255),Sheet1!$B$3:$B$1000),)
Đây là công thức thường nên tốc độ nhanh hơn
Nhưng nếu Vùng Dữ liệu có kiểu số ở dòng cuối cùng chứa dữ liệu thì name này cũng không chạy thầy à,Công thức của em đúng là hơi nặng nhưng nó lấy được cả dữ liệu dạng số ở dòng cuối cùng! Mong thầy chỉ thêm cho em!
 
bạn để trỏ chuột tới sheet cần lọc và sau đó lọc bình thường thôi có đâu mà chưa có tác dụng, bạn làm thừ đi nha

bạn xem kết quả tui lọc có đúng theo ý của bạn không, tui dùng addvan filter
Anh xem lại chứ. Hình như em cũng biết Advanced fiter không lọc được sang sheet khác thì mới phải?
----------
Sau khi đọc bài #413
domfootwear đã viết:
Bạn đứng tại sheet khác cần đưa dữ liệu rồi lọc thử nhé.
Em cảm ơn anh nhiều! Có anh chỉ bây giờ em mới biết.
 
Lần chỉnh sửa cuối:
Nhưng nếu Vùng Dữ liệu có kiểu số ở dòng cuối cùng chứa dữ liệu thì name này cũng không chạy thầy à,Công thức của em đúng là hơi nặng nhưng nó lấy được cả dữ liệu dạng số ở dòng cuối cùng! Mong thầy chỉ thêm cho em!
Kiểu số thì ta thay MATCH(REPT("z",255),Sheet1!$B$3:$B$1000) thành MATCH(9.99999999999999E+307,Sheet1!$B$3:$B$1000)
Nếu dữ liệu vừa số vừa chuổi thì ta lấy MAX của 2 kết quả trên
Cả 2 đều không phải là mảng
Ẹc... Ẹc...
 
Cho em xem công thức MAX đó là sao luôn đi thầy .
Thanks
 
Thế này thôi bạn ạ :
PHP:
=OFFSET(Sheet1!$B$3,,,max(MATCH(REPT("z",255),Sheet1!$B$3:$B$1000),MATCH(9.99999999999999E+307,Sheet1!$B$3:$B$1000)),)
 
Hình như không ổn nhe bạn ơi ,nó không ra kết quả nhe !
 
Chạy ngon mà bạn, xem file đính kèm mình làm thử nhé!
 

File đính kèm

Thanks, siêu quá thế này bao giờ theo kịp, sao lai dùng z và 9.99999999999999E+307, sao không là 308 ah?
Không đi SN ah,
z là ký tự cuối cùng trong bảng chữ cái và 9.99999999999999E+307 là số lớn nhất mà Excel có thể hiểu được (sửa 307 thành 308 thì thua ngay ---> Thử biết liền)
Xem thêm chi tiết tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?7669-Những-công-thức-độc-đáo&
Vụ này đã có trên diễn đàn từ lâu lắm rồi
 
BẠn ơi có thể không dùng nút được không?
 
Lọc dữ liệu trùng mà chỉ lấy 1 thôi

mình có vi dụ sau:các bạn có thể chỉ giúp mình viết hàm như thế nào với, điều kiện của hàm là vừa lọc những người có điểm dưới 7, vừa tính tổng thời gian tám của từng người với những số đt khác nhau.Mình tìm trên diễn đàn rùi làm theo vẫn không được. Mong mọi người giúp. Tks
mã số tên số đt điểm thời gian tám
001 Nguyễn văn a 012345 6.0 48
002 bùi anh t 587144 7.0 30
003 le thi c 002472 5.0 50
001 nguyen van a 058734 5.0 50
001 nguyễn van a 245311
 

File đính kèm

Lần chỉnh sửa cuối:
Để sớm nhận được sự giúp đỡ từ người khác bạn nên nêu rõ yêu cầu: BẠN CẦN GÌ?
Ở bài trên và cả trong file của bạn không thấy yêu cầu gì cụ thể, chỉ thấy vẻn vẹn mỗi 1 bảng dữ liệu, lác đác có vài ô bỏ trống tô màu vàng...
 
Lần chỉnh sửa cuối:
Bạn nào có chương trình Quản lý tài chính tài sản công đoàn bằng excel cho mình xin với. rất cảm ơn
 
các bác cho em hỏi cách lọc giá trị trùng

em có 1 file serial thiết bị trong đó có 1 số serial trung nhau . các bác cho em hỏi có hàm nào lọc được nhứng serial trùng ko?
 

File đính kèm

Bạn muốn đánh dấu màu nền, hay trích lọc danh sách trùng, hay delete những series trùng ra khỏi danh sách?
 
minh muốn dùng hàm để lọc và đánh dấu màu nền đối với những serial trùng
 
Bạn thử xem file xem đã đạt yêu cầu của bạn chưa.
 

File đính kèm

Cách lọc dữ liệu trùng

Các cao thủ giúp mình công thức lọc các dữ liệu trung lặp để tính tổng mình đang làm bằng thủ câoong mất nhiều thời gian mà không chính sác và dữ liệu lại cập nhật thường xuyên lên mất công quá. Mình gửi file dữ liệu kem theo.
Xin cảm ơn trước nhe!
 

File đính kèm

Các cao thủ giúp mình công thức lọc các dữ liệu trung lặp để tính tổng mình đang làm bằng thủ câoong mất nhiều thời gian mà không chính sác và dữ liệu lại cập nhật thường xuyên lên mất công quá. Mình gửi file dữ liệu kem theo.
Xin cảm ơn trước nhe!
Công thức tại G3:
Mã:
=INDEX($B$3:$B$322,MATCH(0,COUNTIF($G$2:G2,$B$3:$B$322),0))
Kết thúc bằng Ctrl-Shift-Enter
Kéo xuống đến khi nào báo lỗi thì thôi.
 
Công thức tại G3:
Mã:
=INDEX($B$3:$B$322,MATCH(0,COUNTIF($G$2:G2,$B$3:$B$322),0))
Kết thúc bằng Ctrl-Shift-Enter
Kéo xuống đến khi nào báo lỗi thì thôi.

:-=:-=
Cám ơn bạn bebo021999 nhiều. Tại mình chưa nói rõ đề bài nên bạn chưa hiểu ý mình.
Mình nhờ bạn đặt công thức để lọc các dữ liệu duy nhất trùng và không trùng từ các sheet 1,2,3,4,5 xang sheet TONGHOP như mình làm ví dụ ở sheet TỎNG HOP nhung dùng công thức để ra bảng tonghop.
Bạn giúp mình nhé. Xin cảm ơn bạn.
 

File đính kèm

Mọi người cho mình hỏi chút

Không hiểu sao file excel này của mình bị sao, khi lọc dữ liệu tại cột "Đăng ký nhu cầu sử dụng", mình muốn lọc riêng dữ liệu "NM2 hoặc NM3 hoặc NM4" thì nó luôn xuất hiện dòng cuối cùng. Như file đính kèm theo
 

File đính kèm

Không hiểu sao file excel này của mình bị sao, khi lọc dữ liệu tại cột "Đăng ký nhu cầu sử dụng", mình muốn lọc riêng dữ liệu "NM2 hoặc NM3 hoặc NM4" thì nó luôn xuất hiện dòng cuối cùng. Như file đính kèm theo
Bạn sắp xếp thứ tự bằng SUBTOTAL, mình chưa biết nguyên nhân nhưng thường gặp tình trạng này, bạn thử thay công thức này: =IF($B6="","",MAX($A$5:A5)+1) vào A6 và kéo xuống rồi filter xem, mình test đã ok.
 
Không hiểu sao file excel này của mình bị sao, khi lọc dữ liệu tại cột "Đăng ký nhu cầu sử dụng", mình muốn lọc riêng dữ liệu "NM2 hoặc NM3 hoặc NM4" thì nó luôn xuất hiện dòng cuối cùng. Như file đính kèm theo
CỘT SỐ THỨ TỰ BẠN DÙNG SUBTOTAL LÀ OK RỒI NHƯNG CÓ ĐIỀU
BẠN SỬ DỤNG EXCEL 2007 MÀ SAO KHÔNG TẬN DỤNG NỐT CHỨC NĂNG CÓ SẲN (TABLE)ĐỂ LỌC MỘT CÁCH DỄ DÀNG HƠN
XEM VIDEO NHÉ
[video=youtube;bf_HILkbfKs]http://www.youtube.com/watch?v=bf_HILkbfKs[/video]
 
Giải thích công thức

Em thấy trong file co stt, ds, là gì vậy anh. Em gà cái này lắm--=0
stt, ds là những name động. Cách tìm như sau:
Bạn vào Menu Insert/Name/Define (hoặc bấm Ctrl +F3)
Trong khung Names in workbook bạn chọn 1 name nào đó thì khung Refers to sẽ hiện ra công thức
Tôi gời cho bạn bảng phân tích của file đính kèm của bạn Volga bài # 138
Bạn kg hiểu công thức như thế nào thì làm như sau:
VD: ở 1 Cell nào đó bạn gõ công thức =ROW (ds), trên thanh Fomula bạn bôi đen công thức này rồi bấm F9 -> hiện ra kết quả, cách làm là như vậy, tôi phân tích ra từng cột, rồi bạn cứ áp dụng hàm IF là sẽ hiểu.
 

File đính kèm

Lần chỉnh sửa cuối:
Dùng chức năng Remove Duplicate!
 
Lọc Danh sách người lao động duy nhất thông qua Chứng Minh Thư Nhân Dân

Em gửi file đính kèm, các anh chị trong diễn đàn giúp em với
Sheet 1: Là Sheet cập nhật dữ liệu
Sheet " Danh Sach": Là sheet kết quả

Từ sheet 1: nếu người nào (Có CNMD: Là điều kiện Lọc ) xuất hiện nhiều hơn 1 lần sẽ chỉ được liệt kê vào sheet " Danh sách " 1 lần

Mong nhận được sự giúp đỡ của các anh chị
 

File đính kèm

Em gửi file đính kèm, các anh chị trong diễn đàn giúp em với
Sheet 1: Là Sheet cập nhật dữ liệu
Sheet " Danh Sach": Là sheet kết quả

Từ sheet 1: nếu người nào (Có CNMD: Là điều kiện Lọc ) xuất hiện nhiều hơn 1 lần sẽ chỉ được liệt kê vào sheet " Danh sách " 1 lần

Mong nhận được sự giúp đỡ của các anh chị

Bạn xem file đính kèm xem có đúng ý không nhé.
 

File đính kèm

Em gửi file đính kèm, các anh chị trong diễn đàn giúp em với
Sheet 1: Là Sheet cập nhật dữ liệu
Sheet " Danh Sach": Là sheet kết quả

Từ sheet 1: nếu người nào (Có CNMD: Là điều kiện Lọc ) xuất hiện nhiều hơn 1 lần sẽ chỉ được liệt kê vào sheet " Danh sách " 1 lần

Mong nhận được sự giúp đỡ của các anh chị
Bảng kết quả không giống với những gì bạn diễn tả, làm đúng kết quả bạn mong muốn nhé. Tại sheet Danh sach :
1. Công thức tại C8 :
PHP:
=LOOKUP(REPT("z",255),CHOOSE({1;2},"",INDEX(Sheet1!$C$8:$C$75,MATCH(TRUE,INDEX(ISNA(MATCH(Sheet1!$C$8:$C$75,$C$7:$C7,0)),0),0))))
Copy xuống
2. Công thức tại A8 :
PHP:
=INDEX(Sheet1!$A$8:$A$75,MATCH('Danh Sach'!C8,Sheet1!$C$8:$C$75,0),1)
Copy xuống
 

File đính kèm

Bảng kết quả không giống với những gì bạn diễn tả, làm đúng kết quả bạn mong muốn nhé. Tại sheet Danh sach :
1. Công thức tại C8 :
PHP:
=LOOKUP(REPT("z",255),CHOOSE({1;2},"",INDEX(Sheet1!$C$8:$C$75,MATCH(TRUE,INDEX(ISNA(MATCH(Sheet1!$C$8:$C$75,$C$7:$C7,0)),0),0))))
Copy xuống
2. Công thức tại A8 :
PHP:
=INDEX(Sheet1!$A$8:$A$75,MATCH('Danh Sach'!C8,Sheet1!$C$8:$C$75,0),1)
Copy xuống
Có thể dùng pivot hoặc filter trong trường hợp này.
 

File đính kèm

Neu ban ko xai advanced filter thi co the dung VBA macro nhu sau:

-------------------------
Sub GiatriDuyNhat()



Dim i As Long
Dim HangCuoi As Long

HangCuoi = Range("A65536").End(xlUp).Row
For i = 1 To HangCuoi
If Application.WorksheetFunction.CountIf(Range("A1:A" & HangCuoi), Range("A" & i).Text) = 1 Then Range("B65536").End(xlUp)(2, 1).Value = Range("A" & i).Text
Next i

End Sub
------------------------

Can luu y: du lieu can loc o cot A va khi khoi dong macro ke qua se duoc liet ke qua cot B.

Mình có một danh sách có cột B là tên sách, cột H là cột ghi chú, do tên sách mình lưu trữ từ nhiều năm nên rất nhiều hàng, nếu mình muốn dùng cột H để ghi chú những tên sách bị trùng thì mình phải làm sao. Nhờ bạn giúp mình với. Cảm ơn nhiều
 
Mình có một danh sách có cột B là tên sách, cột H là cột ghi chú, do tên sách mình lưu trữ từ nhiều năm nên rất nhiều hàng, nếu mình muốn dùng cột H để ghi chú những tên sách bị trùng thì mình phải làm sao. Nhờ bạn giúp mình với. Cảm ơn nhiều
Topic đã tạo sao sao không tiếp tục, Bạn không "trung thành" với những cái của mình sao?
http://www.giaiphapexcel.com/forum/...-liệu-trong-một-bảng-tính&p=412264#post412264
Bạn đưa 1 cái Code ai mà hiểu được bạn muốn gì.
 
mình thấy có rất nhiều phương pháp dùng công thức để lọc ra danh sách duy nhất, tuy nhiên kết quả thường trả về mảng và hiện ra ngay trên bảng dữ liệu, Nhưng mình muồn dùng kết quả này làm trung gian (không muốn hiển thị ra) bằng cách gán name cho nó ( ví dụ name này sẽ là dữ liệu đầu vào cho validation), mong các bác giúp đỡ.
 

File đính kèm

lọc dữ liệu trùng nhau?

xin chào các ạnh chị!
em có chút rắc rối mong các pro tháo gỡ giúp
em có 1 bảng excel mà tuần nào cũng phải làm.hix.trong bảng này có 1 cột có nhiều tên trùng nhau,các cột thì # nhau.Em muốn lọc các tên trùng nhau trong cột này để nhập dữ liệu vào các cột # như là chức năng Auto Filter ý ạ.VD:

cột 1 cột 2 cột 3
AA ----x
BB ----x

CC
DD
EE
AA ----------x
BB -----------x

Ở đây em muốn lọc ra các tên giống nhau nằm cạnh nhau như là chức năng Auto Filter ý ạ để sao chép các số liệu (x) từ AA, BB ... lên cột 3 AA,BB ...

cột 1 cột 2 cột 3
AA -----x
AA ----------x
BB -----x

BB -----------x


em đang cần rất gấp mong anh chị giúp đỡ.thank all!!!

sẵn tiện cho em hỏi sao em viết bài gửi cứ mỗi chữ có dấu lại bị nhảy con chỏ về đầu dòng thế nhỉ?Làm post bài lâu quá.
 
Ở cột 3 bạn có thể dùng công thức dạng như sau:
= IF(COUNTIF($A$1:A1, A1)>1, VLOOKUP(A1, $A$1:B1, 2, 0), "")


Bổ sung: khi nhập dữ liệu, bạn có nhìn thấy tiện ích gõ tiếng Việt bên dưới không, hatx click vào nút ()Tắt để dùng bộ gõ trên máy của bạn thì sẽ không bị lỗi nhảy về đầu dòng.
 
cám ơn anh hoangvuluan nhưng em cần lọc các tên trùng nhau như AA,AA... BB, BB nằm liền kề nhau cơ ạ.hic
PS: em ko thấy tiện ích gõ TV ở web minh chỗ nào cả,thỉnh thoảng viết lại không bị nữa.khó hiểu quá.
 
cám ơn anh hoangvuluan nhưng em cần lọc các tên trùng nhau như AA,AA... BB, BB nằm liền kề nhau cơ ạ.hic
PS: em ko thấy tiện ích gõ TV ở web minh chỗ nào cả,thỉnh thoảng viết lại không bị nữa.khó hiểu quá.


gửi bài lên đi bạn, để hiểu ý bạn chi tiết hơn
 
xin chào các ạnh chị!
em có chút rắc rối mong các pro tháo gỡ giúp
em có 1 bảng excel mà tuần nào cũng phải làm.hix.trong bảng này có 1 cột có nhiều tên trùng nhau,các cột thì # nhau.Em muốn lọc các tên trùng nhau trong cột này để nhập dữ liệu vào các cột # như là chức năng Auto Filter ý ạ.VD:

cột 1 cột 2 cột 3
AA ----x
BB ----x

CC
DD
EE
AA ----------x
BB -----------x

Ở đây em muốn lọc ra các tên giống nhau nằm cạnh nhau như là chức năng Auto Filter ý ạ để sao chép các số liệu (x) từ AA, BB ... lên cột 3 AA,BB ...

cột 1 cột 2 cột 3
AA -----x
AA ----------x
BB -----x

BB -----------x


em đang cần rất gấp mong anh chị giúp đỡ.thank all!!!
Nếu giống như những gì bạn mô tả thì bạn chỉ cần dùng chức năng SORT của excel sau đó copy ra cột số 3 là xong, vừa nhanh gọn mà k cần công thức phức tạp.
 
Em định gửi file đính kèm nhưng hình như nick của em mới nên chưa được gửi hay sao ý ạ.Em add lên link Mediafire các anh chị chịu khó xem giúp em nhé.Em đưa ra VD và mong muốn ở trong file đó ạ.Dù được dù ko thì em cũng cảm ơn rất nhiều vì đã trả lời ạ
http://www.mediafire.com/?ropg762zlbr0ret
 
Lọc địa chỉ mail

Địa chỉ mail có dạng này:
"nguyen, thuong" <thuongbhtt@gmail.com>,
"Nguyen, Tien" <amen2502@gmail.com>,
"Nguyen, Tuan" <tuanpt@gmail.com>,
"Nguyen, Van Minh" <ami8688@gmail.com>,
"Nguyen, Xuan Thang"<nhatthanh_ses@yahoo.com.vn>,
Em muốn dùng excel lọc bỏ hết chỉ còn thế này thì làm thế nào ạ

Chỉ dùm em cách lọc bỏ những mail bị trùng lặp
Thanks a/c !
 
Chỉnh sửa lần cuối bởi điều hành viên:
Địa chỉ mail có dạng này:
"nguyen, thuong" <thuongbhtt@gmail.com>,
"Nguyen, Tien" <amen2502@gmail.com>,
"Nguyen, Tuan" <tuanpt@gmail.com>,
"Nguyen, Van Minh" <ami8688@gmail.com>,
"Nguyen, Xuan Thang"<nhatthanh_ses@yahoo.com.vn>,
Em muốn dùng excel lọc bỏ hết chỉ còn thế này thì làm thế nào ạ

Chỉ dùm em cách lọc bỏ những mail bị trùng lặp
Thanks a/c !
Giả sử dữ liệu gốc bắt đầu từ A2, bạn sử dụng công thức sau cho ô B2 và copy xuống dưới:
Mã:
=MID(A2,FIND("<",A2)+1,FIND(">",A2)-FIND("<",A2)-1)
Vấn đề lọc bỏ dữ liệu trùng lặp, bạn có thể tìm kiếm trên diễn đàn, vấn đề này được đề cập rất nhiều:
- Dùng cột phụ để kiểm tra điều kiện, sau đó sử dụng AutoFilter để lọc
- Sử dụng AdvancedFilter với tùy chọn Unique Records Only để lọc.
- Sử dụng chức năng Remove Duplicate (đối với Excel 2007, 2010).
- Sử dụng VBA,...
 
1. Tìm và thay thế:
- Ctrl+H, ở khung Find what nhập *< Repalace All.
- Ctrl+H, ở khung Find what nhập >, Repalace All.
2. Xóa mail trùng lập:
Ở thẻ Table Tools (Hoặc Data) bạn chọn biểu tượng Remove Duplicates
 
Lần chỉnh sửa cuối:
1. Tìm và thay thế:
- Ctrl+H, ở khung Find what nhập "*"*< Repalace All.
- Ctrl+H, ở khung Find what nhập >, Repalace All.
2. Xóa mail trùng lập:
Ở thẻ Table Tools (Hoặc Data) bạn chọn biểu tượng Remove Duplicates
Lần đầu chỉ cần *< là được rồi, sao phải "*"*< cho rối mắt thế nhỉ?
 
=MID(A2,FIND("<",A2)+1,FIND(">",A2)-FIND("<",A2)-1)
hàm này lọc lọc những dạng thế này "nguyen, thuong" <thuongbhtt@gmail.com>,
còn những dạng ami8688@gmail.com, thì ko lọc được báo lỗi anh , mà nếu lọc đc thì kết thúc ko có dấu phảy

Lần đầu chỉ cần *< là được rồi, sao phải "*"*< cho rối mắt thế nhỉ?
cái này thì đưa về dạng này nhatthanh_ses@yahoo.com.vn, và <nhatthanh_ses@yahoo.com.vn>,
và <<nhatthanh_ses@yahoo.com.vn>>, và <<<thành công >>>
mà em chỉ cần về dạng nhatthanh_ses@yahoo.com.vn,để tìm các tìm đc các mail trùng lặp chứ các dạng còn lại thì ko lọc đc các mail trùng lặp đc

Nên em nghĩ dùng hàm lọc là nhanh nhất để đưa về
nhatthanh_ses@yahoo.com.vn, (kết thức có dấu phảy) để dễ lọc các mail trùng và gửi mail dễ dàng

Thanks a/c !

 
hàm này lọc lọc những dạng thế này "nguyen, thuong" <thuongbhtt@gmail.com>,
còn những dạng ami8688@gmail.com, thì ko lọc được báo lỗi anh , mà nếu lọc đc thì kết thúc ko có dấu phảy


cái này thì đưa về dạng này nhatthanh_ses@yahoo.com.vn, và <nhatthanh_ses@yahoo.com.vn>,
và <<nhatthanh_ses@yahoo.com.vn>>, và <<<thành công >>>
mà em chỉ cần về dạng nhatthanh_ses@yahoo.com.vn,để tìm các tìm đc các mail trùng lặp chứ các dạng còn lại thì ko lọc đc các mail trùng lặp đc

Nên em nghĩ dùng hàm lọc là nhanh nhất để đưa về
nhatthanh_ses@yahoo.com.vn, (kết thức có dấu phảy) để dễ lọc các mail trùng và gửi mail dễ dàng

Thanks a/c !

Mình thấy anh nghiaphuc làm đúng yêu cầu của bạn rồi đó, lọc dữ liêu nằm trong cặp dấu "<...>" giờ bạn muốn có dấu "," sau những địa chỉ lọc được thì bạn thêm thế này vào công thức của anh nghiaphuc.

=MID(A2,FIND("<",A2)+1,FIND(">",A2)-FIND("<",A2)-1)&","

Bạn để ý chỗ tôi bôi màu đỏ trong công thức.
 
Đề bài bạn đưa dữ liệu mẫu để hỏi thì các bạn đã giải rồi,
Địa chỉ mail có dạng này:
"nguyen, thuong" <thuongbhtt@gmail.com>,
"Nguyen, Tien" <amen2502@gmail.com>,
"Nguyen, Tuan" <tuanpt@gmail.com>,
"Nguyen, Van Minh" <ami8688@gmail.com>,
"Nguyen, Xuan Thang"<nhatthanh_ses@yahoo.com.vn>,
Em muốn dùng excel lọc bỏ hết chỉ còn thế này thì làm thế nào ạ

Chỉ dùm em cách lọc bỏ những mail bị trùng lặp
Thanks a/c !

bây giờ lại thêm đủ thú cái gì gì...
hàm này lọc lọc những dạng thế này "nguyen, thuong" <thuongbhtt@gmail.com>,
còn những dạng ami8688@gmail.com, thì ko lọc được báo lỗi anh , mà nếu lọc đc thì kết thúc ko có dấu phảy


cái này thì đưa về dạng này nhatthanh_ses@yahoo.com.vn, và <nhatthanh_ses@yahoo.com.vn>,
và <<nhatthanh_ses@yahoo.com.vn>>, và <<<thành công >>>
mà em chỉ cần về dạng nhatthanh_ses@yahoo.com.vn,để tìm các tìm đc các mail trùng lặp chứ các dạng còn lại thì ko lọc đc các mail trùng lặp đc

Nên em nghĩ dùng hàm lọc là nhanh nhất để đưa về
nhatthanh_ses@yahoo.com.vn, (kết thức có dấu phảy) để dễ lọc các mail trùng và gửi mail dễ dàng

Thanks a/c !

Sao từ đầu bạn không đưa file đính kèm với đủ thứ các gì gì mà bạn muốn?
Híc! Tất cả mọi trợ giúp đều công cốc!
 
Lần chỉnh sửa cuối:
=MID(A2,FIND("<",A2)+1,FIND(">",A2)-FIND("<",A2)-1)&","
các dữ liệu chưa đúng dạng thì nó đưa về đúng dạng mình cần
còn dữ liệu đã đúng dạng của hàm nó ko hiển thị ra anh
em muốn các dạng đúng hay ko đúng đều hiển thị qua cột đang lọc luôn 1 lần
thanks a/c
 
các dữ liệu chưa đúng dạng thì nó đưa về đúng dạng mình cần
còn dữ liệu đã đúng dạng của hàm nó ko hiển thị ra anh
em muốn các dạng đúng hay ko đúng đều hiển thị qua cột đang lọc luôn 1 lần
thanks a/c
Tốt nhất mình nghĩ bạn nên đưa bảng tính của bạn lên diễn đàn để mọi người quan sát cho ý kiến, mọi người không thể ngồi đây mà hình dung, tưởng tượng ra bạn cần cái gì, lọc cái gì.

Hãy đưa file cần lọc lên để xem cách bạn bố trí dữ liệu cột hàng ra sao, các kiểu dữ liệu trong file, nếu không có gì bí mật bạn có thể đưa file thực tế lên để bạn có được phương án giải quyết nhanh nhất và chính xác nhất hơn nữa lại không làm mất thời gian của những thành viên giúp bạn.

Xin cảm ơn!!!
 
=MID(A2,FIND("<",A2)+1,FIND(">",A2)-FIND("<",A2)-1)&","


các dữ liệu chưa đúng dạng thì nó đưa về đúng dạng mình cần
còn dữ liệu đã đúng dạng của hàm nó thì ko hiển thị ra anh ak
em muốn các dạng đúng hay ko đúng đều hiển thị qua cột B đang lọc luôn 1 lần
thanks a/c
 

File đính kèm

=MID(A2,FIND("<",A2)+1,FIND(">",A2)-FIND("<",A2)-1)&","


các dữ liệu chưa đúng dạng thì nó đưa về đúng dạng mình cần
còn dữ liệu đã đúng dạng của hàm nó thì ko hiển thị ra anh ak
em muốn các dạng đúng hay ko đúng đều hiển thị qua cột B đang lọc luôn 1 lần
thanks a/c

Công thức này cho cell B2 nhé:
Mã:
=TRIM(IF(COUNTIF($A2,"*<*"),MID(SUBSTITUTE(SUBSTITUTE(TRIM($A2),"<",REPT(" ",255)),">",""),255,255),$A2))
 
=TRIM(IF(COUNTIF($A2,"*<*"),MID(SUBSTITUTE(SUBSTITUTE(TRIM($A2),"<",REPT(" ",255)),">",""),255,255),$A2))
em dùng hàm này nó vẫn đưa địa chỉ mail về dạng em cần nhưng vẫn chưa chuẩn địa chỉ mail
vd
ngoctoan@gmail.com,
. ngoctoan@gmail.com,
địa chỉ mail thì giống nhau nhưng khi dùng hàm loại bỏ các mail bị trùng thì nó vẫn ko hiểu 2 mail này là 1 vì mail thứ 2 có khoảng trống (space) nên vẫn ko hiểu 2 mail này là 1
anh sửa dùm em cho hàm đó chuẩn hơn nữa (ko có khoảng trống phía trước) dùm em để em dùng hàm lọc các mail bị trùng để loại bỏ bớt , thanks a !
 
em dùng hàm này nó vẫn đưa địa chỉ mail về dạng em cần nhưng vẫn chưa chuẩn địa chỉ mail
vd
ngoctoan@gmail.com,
. ngoctoan@gmail.com,
địa chỉ mail thì giống nhau nhưng khi dùng hàm loại bỏ các mail bị trùng thì nó vẫn ko hiểu 2 mail này là 1 vì mail thứ 2 có khoảng trống (space) nên vẫn ko hiểu 2 mail này là 1
anh sửa dùm em cho hàm đó chuẩn hơn nữa (ko có khoảng trống phía trước) dùm em để em dùng hàm lọc các mail bị trùng để loại bỏ bớt , thanks a !
Tôi đã dùng hàm TRIM để loại bỏ khoảng trắng thừa rồi còn gì ---> Sao lại có chuyện như bạn nói chứ
Có gì trục trặc cứ cho file lên đây cho dễ nhé
 
em dùng hàm này nó vẫn đưa địa chỉ mail về dạng em cần nhưng vẫn chưa chuẩn địa chỉ mail
vd
ngoctoan@gmail.com,
. ngoctoan@gmail.com,
địa chỉ mail thì giống nhau nhưng khi dùng hàm loại bỏ các mail bị trùng thì nó vẫn ko hiểu 2 mail này là 1 vì mail thứ 2 có khoảng trống (space) nên vẫn ko hiểu 2 mail này là 1
anh sửa dùm em cho hàm đó chuẩn hơn nữa (ko có khoảng trống phía trước) dùm em để em dùng hàm lọc các mail bị trùng để loại bỏ bớt , thanks a !

còn những dữ liệu ko có dấu phảy ở cuối nó cũng ko tự thêm đc
em đã gởi file anh xem dùm giúp dùm em anh nhé thanks anh !
 

File đính kèm

Lần chỉnh sửa cuối:
còn những dữ liệu ko có dấu phảy ở cuối nó cũng ko tự thêm đc
em đã gởi file anh xem dùm giúp dùm em anh nhé thanks anh !
Trong dữ liệu của bạn có chứa 1 loai ký tự đặc biệt chrw(160) nên hàm trim không thể xử lý được.
 
còn những dữ liệu ko có dấu phảy ở cuối nó cũng ko tự thêm đc
em đã gởi file anh xem dùm giúp dùm em anh nhé thanks anh !
Tức là sao đây? Ý bạn muốn kết quả luôn có dấu phẩy ở cuối chuổi, bất kể dữ liệu đầu vào có dấu phẩy này hay không, đúng không?
Vậy thì thêm tí nữa:
PHP:
=SUBSTITUTE(TRIM(IF(COUNTIF($A2,"*<*"),MID(SUBSTITUTE(SUBSTITUTE(TRIM($A2),"<",REPT(" ",255)),">",""),255,255),$A2)),",","")&","
Lưu ý đặc biệt: Tôi thấy các chuổi trong file của bạn có 1 ký tự lạ ở đầu chuổi đấy nha! Chẳng hạn tại A5, có ký tự CHAR(160) ở đầu chuổi ---> Nhìn giống khoảng trắng nhưng không phải là khoảng trắng
 
Lần chỉnh sửa cuối:
còn những dữ liệu ko có dấu phảy ở cuối nó cũng ko tự thêm đc
em đã gởi file anh xem dùm giúp dùm em anh nhé thanks anh !
Trong dữ liệu của bạn có chứa 1 loai ký tự đặc biệt nên hàm trim không thể xử lý được.
Bạn thử thế này với những ô nào còn khoảng trắng giống như vậy

=SUBSTITUTE(A2,CHAR(160),"")
 
Lưu ý đặc biệt: Tôi thấy các chuổi trong file của bạn có 1 ký tự lạ ở đầu chuổi đấy nha! Chẳng hạn tại A5, có ký tựCHAR(160) ở đầu chuổi ---> Nhìn giống khoảng trắng nhưng không phải là khoảng trắng
vấn đề em nói là chổ này , vì có khoảng trắng phía trước nên , dùng hàm tìm những mail trùng lặp ko đc
anh sữa hàm dùm em khi lọc bỏ khoảng trắng về giống B2,B3,B4
thanks anh !
 
hic,em ko biết sài VBA , sữa dùm em hàm anh nhé , thanks anh !
 
hic,em ko biết sài VBA , sữa dùm em hàm anh nhé , thanks anh !

Thì bạn thêm thằng SUBSTITUTE nữa chứ có gì đâu!
Chẳng hạn thế này cũng được:
Mã:
=SUBSTITUTE(SUBSTITUTE(TRIM(IF(COUNTIF($A2,"*<*"),MID(SUBSTITUTE(SUBSTITUTE(TRIM($A2),"<",REPT(" ",255)),">",""),255,255),$A2)),",","")&",",CHAR(160),"")
 
Lọc các dữ liệu không trùng lặp

Em chào các anh chị trong diễn đàn.
Em có một tình huống mong anh chị giúp đỡ.
Trong file em đính kèm, có 2 cột được highlight màu vàng, ở trong 2 côt đó thì có chứa các dữ liệu trùng nhau. Giờ em muốn trích lọc ra một bảng khác mà chỉ lấy giá trị duy nhất, không trùng lặp thì phải sử dụng công thức và hàm như thế nào ạ?
--
 

File đính kèm

Em chào các anh chị trong diễn đàn.
Em có một tình huống mong anh chị giúp đỡ.
Trong file em đính kèm, có 2 cột được highlight màu vàng, ở trong 2 côt đó thì có chứa các dữ liệu trùng nhau. Giờ em muốn trích lọc ra một bảng khác mà chỉ lấy giá trị duy nhất, không trùng lặp thì phải sử dụng công thức và hàm như thế nào ạ?
--
Dữ liệu hơn ngàn dòng mà dùng công thức chắc hơi "oải".
Thử với VBA xem, Enable Macros, bấm nút 1 phát là xong.
 

File đính kèm

Chào các bạn, mình muốn lọc ra kết qủa duy nhất
Mình có giải thích trong File đính kèm
Cảm ơn cả nhà!
 

File đính kèm

Chào các bạn, mình muốn lọc ra kết qủa duy nhất
Mình có giải thích trong File đính kèm
Cảm ơn cả nhà!
Nếu dữ liệu chỉ có vài chục dòng thì xem file này, thêm 1 cột phụ rồi dùng công thức + Name
Nếu dữ liệu nhiều hơn thì nên dùng VBA cho "tốc độ".
 

File đính kèm

Nếu dữ liệu chỉ có vài chục dòng thì xem file này, thêm 1 cột phụ rồi dùng công thức + Name
Nếu dữ liệu nhiều hơn thì nên dùng VBA cho "tốc độ".
Không cột phụ cũng được mà anh
1> Đặt name:
Mã:
 tmp =$O$6:$O$100 & CHAR(1) & $P$6:$P$100 & CHAR(1) & $Q$6:$Q$100
Mã:
pos =IF(tmp =REPT(CHAR(1),2),"",IF(MATCH(tmp, tmp,0) =ROW(INDIRECT("1:"&COUNTA(tmp))),MATCH(tmp,tmp,0),""))
2> Công thức:
Mã:
=TRIM(MID(SUBSTITUTE(IF(ROWS($1:1)>COUNT(pos),"",INDEX(tmp,SMALL(pos,ROWS($1:1)))),CHAR(1),REPT(" ",255)),(COLUMNS($A:A)-1)*255+1,255))
Kéo fill công thức sang phải và xuống dưới
 
Nếu dữ liệu chỉ có vài chục dòng thì xem file này, thêm 1 cột phụ rồi dùng công thức + Name
Nếu dữ liệu nhiều hơn thì nên dùng VBA cho "tốc độ".
Dữ liệu của em không nhiều, nhưng Khối cell O6:Q16 của em là kết qủa của các công thức, nên khi áp dụng các công thức của anh thì tại các cell của cột K, L, M em phải chọn cell rồi bấm F2 thì công thức mới cập nhật (bấm F9 nó không "xi nhê")
Anh giúp em viết code , tại Cell L5, em có dùng Validation để chọn để ra kết qủa của Khối cell O6:Q16
Em cảm ơn tất cả các anh chị!
 
Dữ liệu của em không nhiều, nhưng Khối cell O6:Q16 của em là kết qủa của các công thức, nên khi áp dụng các công thức của anh thì tại các cell của cột K, L, M em phải chọn cell rồi bấm F2 thì công thức mới cập nhật (bấm F9 nó không "xi nhê")
Anh giúp em viết code , tại Cell L5, em có dùng Validation để chọn để ra kết qủa của Khối cell O6:Q16
Em cảm ơn tất cả các anh chị!

Thế thì bạn dùng Advanced Filter\Unique đi ---> 1 phát ra ngay thôi mà (record macro để biết code viết thế nào)
Với Excel 2007 cũng có thể dùng Remove Duplicate
 
Thế thì bạn dùng Advanced Filter\Unique đi ---> 1 phát ra ngay thôi mà (record macro để biết code viết thế nào)
Với Excel 2007 cũng có thể dùng Remove Duplicate
Tôi đã record Macro, nhưng không xử lý được hai dòng vẫn trùng nhau
Nhờ bạn giúp đỡ. Xin cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Hi, ở đây mình không sử dụng dòng tiêu đề! nên không biết có cách nào không?
Một là bạn tự gõ tiêu đề vào nếu dùng Advanced Filter (tại quy định nó vậy). Hai là bạn dùng Remove Duplicate
Mã:
Sub Macro1()
  With Range("K6:M10000")
    .Value = Range("O6:Q10000").Value
    .RemoveDuplicates Array(1, 2, 3), xlNo
  End With
End Sub
 
Một là bạn tự gõ tiêu đề vào nếu dùng Advanced Filter (tại quy định nó vậy). Hai là bạn dùng Remove Duplicate
Mã:
Sub Macro1()
  With Range("K6:M10000")
    .Value = Range("O6:Q10000").Value
    .RemoveDuplicates Array(1, 2, 3), xlNo
  End With
End Sub
Sau khi chạy Code trên thì:
1/ Nó báo lỗi "Object doesn't Support thí property or method" tại ".RemoveDuplicates Array(1, 2, 3), xlNo"
2/ Và nó lấy toàn bộ của cột O, P, Q qua K, L, M
Cảm ơn bạn!
 
Sau khi chạy Code trên thì:
1/ Nó báo lỗi "Object doesn't Support thí property or method" tại ".RemoveDuplicates Array(1, 2, 3), xlNo"
2/ Và nó lấy toàn bộ của cột O, P, Q qua K, L, M
Cảm ơn bạn!

Đã nói đến Remove Duplicate thì bạn phải biết rằng nó chỉ hoạt động trên Excel 2007 trở lên
Bạn dùng Excel 2003 chăng?
 
Tôi đang sử dụng Ex 2003!!!

Tui cũng xài 2003 nè. Xem thử code này có chạy được không:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Dic As Object, Sar(), dAr(1 To 11, 1 To 3), I As Long, J As Long, K As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
If Target.Address = "$L$5" Then
    Sar = [O6:Q16].Value
    For I = 1 To 11
        Tem = Sar(I, 1) & "#" & Sar(I, 2) & "#" & Sar(I, 3)
        If Not Dic.Exists(Tem) Then
            K = K + 1: Dic.Add Tem, ""
            For J = 1 To 3
                dAr(K, J) = Sar(I, J)
            Next J
        End If
    Next I
    [K6:M16].ClearContents
    If K Then [K6].Resize(K, 3).Value = dAr
End If
Set Dic = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Tui cũng xài 2003 nè. Xem thử code này có chạy được không:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Dic As Object, Sar(), dAr(1 To 11, 1 To 3), I As Long, J As Long, K As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
If Target.Address = "$L$5" Then
    Sar = [O6:Q16].Value
    For I = 1 To 11
        Tem = Sar(I, 1) & "#" & Sar(I, 2) & "#" & Sar(I, 3)
        If Not Dic.Exists(Tem) Then
            K = K + 1: Dic.Add Tem, ""
            For J = 1 To 3
                dAr(K, J) = Sar(I, J)
            Next J
        End If
    Next I
    [K6:M16].ClearContents
    If K Then [K6].Resize(K, 3).Value = dAr
End If
Set Dic = Nothing
End Sub
Dạ code của anh chạy rất tốt ạ!
Anh vui lòng giúp em thêm 1 bài nữa là vừa lọc duy nhất và cộng dồng số tiền nếu cùng MÃ
Và cũng sử dụng sự kiện Sub Worksheet_Change
Em có giải thích trong File
Em cảm ơn!
 

File đính kèm

Dạ code của anh chạy rất tốt ạ!
Anh vui lòng giúp em thêm 1 bài nữa là vừa lọc duy nhất và cộng dồng số tiền nếu cùng MÃ
Và cũng sử dụng sự kiện Sub Worksheet_Change
Em có giải thích trong File
Em cảm ơn!
Yêu cầu công dồn này quá dễ:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$L$5" Then
    With Range("L6:M1000")
     .ClearContents
     .Cells(1, 1).Consolidate Range("O6:P1000").Address(, , 2), 9, 0, 1
    End With
  End If
End Sub
 
Ví dụ cột chứa dữ liệu của bạn là cột A.
Cột cần lọc ra danh sách xuất hiện duy nhất là cột B
Ở ô B1 bạn gõ công thức: =if(countif($A$1:A1;A1)>1;"";A1)
Sau đó kéo fill down đến hết dòng cuối cùng.
Ở cột B bạn chọn lọc non blank là ra danh sách giá trị duy nhất của cột A như bạn muốn
Cách làm này cũng hay, nhưng mà chức năng filter bị giới hạn trong excel 2003, khi số lượng hàng quá lớn.
 
Lần chỉnh sửa cuối:
Giúp tạo danh sách ngày tháng duy nhất!

Gửi các bạn trên GPE!

Mình có 2 danh sách ngày tháng nằm ở sheet1 và sheet2, mình muốn từ 2 danh sách đó tạo ra 1 danh sách ngày tháng duy nhất tại sheet3.

Mong các bạn giúp đỡ!
 

File đính kèm

Gửi các bạn trên GPE!

Mình có 2 danh sách ngày tháng nằm ở sheet1 và sheet2, mình muốn từ 2 danh sách đó tạo ra 1 danh sách ngày tháng duy nhất tại sheet3.

Mong các bạn giúp đỡ!
File bạn nên dùng code thích hơp nhất hoặc pivot
 

File đính kèm

Gửi các bạn trên GPE!

Mình có 2 danh sách ngày tháng nằm ở sheet1 và sheet2, mình muốn từ 2 danh sách đó tạo ra 1 danh sách ngày tháng duy nhất tại sheet3.

Mong các bạn giúp đỡ!
File bạn mình nghĩ nên dùng code thích hơp nhất hoặc pivot
 

File đính kèm

Cái này chỉ là ví dụ bạn ah, hơn nữa trong bảng tính có nhiều vùng dữ liệu chứ không phải có 1 nên không dùng usedrange được (cái này lỗi do mình không nói trước).
Anh chị nào rành cái dzụ dictionary giúp em cái này tí (mục đích để học hỏi chứ với dữ liệu này thì chắc không cần các anh chị đao to búa lớn làm gì)
Cảm ơn các anh chị!
 
Anh chị nào rành cái dzụ dictionary giúp em cái này tí (mục đích để học hỏi chứ với dữ liệu này thì chắc không cần các anh chị đao to búa lớn làm gì)
Muốn dic thì có dít luôn xem file coi nhen
[GPECODE=vb]
Sub DicOnly()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Dim sh As Worksheet
Dim sRange, i As Long


For Each sh In Sheets
If sh.CodeName = "Sheet1" Then
sRange = Sheets("Sheet1").Range("A4:A" & Sheets("Sheet1").Range("A14").End(xlDown).Row).Value

For i = 1 To UBound(sRange)
If Not Dic.Exists(sRange(i, 1)) Then
Dic.Add sRange(i, 1), ""
End If
Next i

End If

If sh.CodeName = "Sheet2" Then
sRange = Sheets("sheet2").Range("C9:C" & Sheets("sheet2").Range("C9").End(xlDown).Row).Value
For i = 1 To UBound(sRange)
If Not Dic.Exists(sRange(i, 1)) Then
Dic.Add sRange(i, 1), ""
End If


Next i
End If
Next
If Dic.Count Then Sheets("sheet4").Range("A1").Resize(Dic.Count, 1).Value = Application.Transpose(Dic.Keys)


End Sub


[/GPECODE]
 

File đính kèm

Muốn dic thì có dít luôn xem file coi nhen
[GPECODE=vb]
Sub DicOnly()
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Dim sh As Worksheet
Dim sRange, i As Long


For Each sh In Sheets
If sh.CodeName = "Sheet1" Then
sRange = Sheets("Sheet1").Range("A4:A" & Sheets("Sheet1").Range("A14").End(xlDown).Row).Value

For i = 1 To UBound(sRange)
If Not Dic.Exists(sRange(i, 1)) Then
Dic.Add sRange(i, 1), ""
End If
Next i

End If

If sh.CodeName = "Sheet2" Then
sRange = Sheets("sheet2").Range("C9:C" & Sheets("sheet2").Range("C9").End(xlDown).Row).Value
For i = 1 To UBound(sRange)
If Not Dic.Exists(sRange(i, 1)) Then
Dic.Add sRange(i, 1), ""
End If


Next i
End If
Next
If Dic.Count Then Sheets("sheet4").Range("A1").Resize(Dic.Count, 1).Value = Application.Transpose(Dic.Keys)


End Sub


[/GPECODE]
- Thứ nhất: Chỉ 1 vòng lập là được rồi
- Thứ hai: Nguyên tắc xử lý dữ liệu là nên cố gắng thu gom cùng 1 loại dữ liệu, tức chỉ nên Add ngày tháng vào Dictionary, đừng nên lẫn lộn chuổi (tiêu đề) ---> Sẽ khiến cho ta khó khăn trong việc xử lý ---> Tiêu đề có thể đặt ở phần cuối code cũng đâu có vấn đề gì
 

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

Back
Top Bottom