Lọc ra danh sách duy nhất từ những dữ liệu trùng?

  • Thread starter cachep87
  • Ngày gửi
cachep87

cachep87

chief accounting
6/3/10
1,210
22
38
TP Hà Nội
www.ketoanxanh.com
Em có 1 danh sách các nhà cung cấp hàng hóa cho 1 công trình trong 1 tháng. Một nhà cung cấp có thể xuất hiện 1 hay nhiều ngày khác nhau trên bảng kê. Em muốn lọc ra danh sách các nhà cung cấp trong 1 tháng thì phải làm như thế nào? (Ví dụ: A,B,C,B,C,D, --> lọc ra: A,B,C,D). Mong anh chị và các Bạn tư vấn giúp! Em xin cảm ơn!
 
  • Like
Reactions: Dongphutaosen.com
Khóa học Quản trị dòng tiền
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
Dùng chức năng có sẵn của excel đó: Data->consolidate
 
  • Like
Reactions: Dongphutaosen.com
IChiNoVa

IChiNoVa

Phu cà phê
2/4/05
134
4
18
Sòn Gài
www.xommuaban.vn
Để làm việc này trước hết bảng dữ liệu của bạn phải được nhập theo 1 quy luật nhất định, bạn phải tự đặt ra quy luật nhập dữ liệu này:
tất cả khách hàng phải lấy từ Danh mục khách hàng, để chắc chắn là 1 khách hàng thì chỉ có 1 cách viết duy nhất (tránh trường hợp 1 KH bạn lại ghi 3 cách: Ngân hàng An Bình, An bình bank, hay ngân hàng AB). Nếu ko có danh mục KH cũng ko sao nhưng phải đảm bảo yêu cầu trên.

Cái này nhiều người ko để ý, đến lúc lọc dữ liệu sẽ bị sót (bạn lọc cho Ngân hàng An Bình, thì sẽ sót An bình bank, và ngân hàng AB).

Có nhiều cách cho bạn lựa chọn:
cách 1: nếu ít khách hàng, bạn làm thủ công cho nhanh, nhìn thấy cái nào giống nhau thì bạn xoá đi, để lại 1 thôi.

cách 2: nhiều khách hàng, cũng dùng thủ công, bạn sort lại, khi đó bạn thấy KH giống nhau sẽ đứng thành 1 group, giúp cho bạn xoá dễ hơn.

cách 3: (xem file att): quá nhiều KH, ko thể làm thủ công,
bạn sort trước.
sau đó tạo 1 cột tạm, gõ công thức: =IF(A2=A1,0,1) với ý nghĩa công thức là nếu KH ở ô A2 giống KH ở ô A1 thì kết quả là 0, còn khác thì là 1
Lọc theo cột tạm vừa tạo, lấy giá trị là 1
Sau khi lọc bạn sẽ có list KH theo yêu cầu, copy sang 1 sheet khác để sử dụng.
Lưu ý cách 3 này bạn phải sort trước,
 
cachep87

cachep87

chief accounting
6/3/10
1,210
22
38
TP Hà Nội
www.ketoanxanh.com
Dùng chức năng có sẵn của excel đó: Data->consolidate

consolidate là tính năng kết hợp thông tin từ nhiều nguồn khác nhau, với các phép tính khác nhau ( cộng, đếm ...... ). Ở đây mình chỉ lọc danh sách nhà cung cấp thôi. Nếu sử dụng consolidate sẽ phải có cột phụ.


cách 1: nếu ít khách hàng, bạn làm thủ công cho nhanh, nhìn thấy cái nào giống nhau thì bạn xoá đi, để lại 1 thôi.

cách 2: nhiều khách hàng, cũng dùng thủ công, bạn sort lại, khi đó bạn thấy KH giống nhau sẽ đứng thành 1 group, giúp cho bạn xoá dễ hơn.

cách 3: (xem file att): quá nhiều KH, ko thể làm thủ công,
bạn sort trước.
sau đó tạo 1 cột tạm, gõ công thức: =IF(A2=A1,0,1) với ý nghĩa công thức là nếu KH ở ô A2 giống KH ở ô A1 thì kết quả là 0, còn khác thì là 1
Lọc theo cột tạm vừa tạo, lấy giá trị là 1
Sau khi lọc bạn sẽ có list KH theo yêu cầu, copy sang 1 sheet khác để sử dụng.
Lưu ý cách 3 này bạn phải sort trước,

- C1 & C2: Nhập thủ công thì rất đơn giản, nhưng khi có phát sinh thêm nhà cung cấp thì lại nhập thêm Bạn ah.

- Cách 3: Cũng là 1 cách để lọc được danh sách nhà cung cấp. Nhưng ý mình muốn lọc ra cột riêng (hình 1), vậy có thể đặt công thức được không?
hình:
1.png


Cảm ơn nguoiconxunuiIChiNoVa đã tư vấn giúp mình!:015:
 
IChiNoVa

IChiNoVa

Phu cà phê
2/4/05
134
4
18
Sòn Gài
www.xommuaban.vn
Bạn xem file att,
nhưng cột kết quả: KH không đứng thành 1 khối được, sẽ có những ô trắng xen vào giữa.
Do đó bạn lọc chọn khác rỗng.

Còn nếu bạn muốn kết quả tự động loại những ô trống thì hỏi bác Bill thử xem nhé.
 
170987

170987

最後まで希望を捨ててはいけない
19/7/10
285
3
18
36
cạnh nhà hàng xóm
Em có 1 danh sách các nhà cung cấp hàng hóa cho 1 công trình trong 1 tháng. Một nhà cung cấp có thể xuất hiện 1 hay nhiều ngày khác nhau trên bảng kê. Em muốn lọc ra danh sách các nhà cung cấp trong 1 tháng thì phải làm như thế nào? (Ví dụ: A,B,C,B,C,D, --> lọc ra: A,B,C,D). Mong anh chị và các Bạn tư vấn giúp! Em xin cảm ơn!
Nếu chỉ lọc thông tin tên khác hàng thì bạn làm như sau:
Quét chọn vùng dử liệu gốc (cột tên hàng)
- Vào menu Date\Filter\ Advanced Filter
- Trong cửa sổ Advanced Filter, chọn mục "Copy to another location"
- Nhấp chuột vào khung "Copy to" rồi dùng chuột chọn 1 ô trên bảng tính, nơi đặt dử liệu sau khi lọc=> đánh dấu check vào ô Unique Records Only =>OK
Cách này chỉ lọc ra được tên các nhà cung cấp trong tháng không lọc được các dữ liệu khác đi cùng. Không biết có phải là cái Bạn cần hỏi không??
cachep.jpg
 
quick87

quick87

Trung cấp
25/6/07
93
19
8
35
Em có 1 danh sách các nhà cung cấp hàng hóa cho 1 công trình trong 1 tháng. Một nhà cung cấp có thể xuất hiện 1 hay nhiều ngày khác nhau trên bảng kê. Em muốn lọc ra danh sách các nhà cung cấp trong 1 tháng thì phải làm như thế nào? (Ví dụ: A,B,C,B,C,D, --> lọc ra: A,B,C,D). Mong anh chị và các Bạn tư vấn giúp! Em xin cảm ơn!
Bạn này dùng thử cái chức năng Remove Duplicates trong Excel có tích hợp sẵn đó bạn.. nó nằm trong Tab Data ấy..
 
Thanh Nam

Thanh Nam

Admin
Thành viên BQT
Quản lý cao cấp
24/4/03
3,314
1,123
113
HCM
www.famaconsulting.vn
Cách của quick là nhanh nhất rồi, nhưng hình như ẽxcel 2007 mới có chức năng này.
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
tui nói làm theo cách tui mà he he, 65.000 tui làm mất 3s he he
không thì viết cái vòng lặp là được, hình như hôm trước có đọc bài của bác Duyệt như thế này:
Mã:
Sub FilterUniqueNumbers3()
   Dim vValue As Variant, vVals As Variant
   Dim myRange As Range
   Dim i As Long
   Dim dArr() As Variant
   Dim oDic As Object
   Set myRange = Worksheets(1).Range("A1:A10")
   'The Dictionary object is always present in Windows so it can always be created
   Set oDic = CreateObject("scripting.dictionary")
   oDic.comparemode = vbTextCompare
   'Read the values from a range into vVals
   vVals = myRange.Value
   'ReDim dArr and make it two dimensional by adding the second argument 1 To 1
   'otherwise you can't dump it in a worksheet later.
   ReDim dArr(UBound(vVals) - 1, 1 To 1)
   For Each vValue In vVals
      'Note the use of the Dictionary object to exclude double values
      If Not IsEmpty(vValue) And Not oDic.exists(vValue) Then
         dArr(i, 1) = vValue
         oDic.Add vValue, Nothing
         i = i + 1
      End If
   Next vValue
   'Free memory by removing the Dictionary object and vVals from memory
   Set oDic = Nothing
   Erase vVals
   'Remove old data
   myRange.Clear
   'Dump dArr values in worksheet
   myRange.Resize(i).Value = dArr
End Sub
 
T

Trai Tim Kho

Sơ cấp
25/6/11
19
0
0
36
Trái Tim
tui nói làm theo cách tui mà he he, 65.000 tui làm mất 3s he he
không thì viết cái vòng lặp là được, hình như hôm trước có đọc bài của bác Duyệt như thế này:
Mã:
Sub FilterUniqueNumbers3()
   Dim vValue As Variant, vVals As Variant
   Dim myRange As Range
   Dim i As Long
   Dim dArr() As Variant
   Dim oDic As Object
   Set myRange = Worksheets(1).Range("A1:A10")
   'The Dictionary object is always present in Windows so it can always be created
   Set oDic = CreateObject("scripting.dictionary")
   oDic.comparemode = vbTextCompare
   'Read the values from a range into vVals
   vVals = myRange.Value
   'ReDim dArr and make it two dimensional by adding the second argument 1 To 1
   'otherwise you can't dump it in a worksheet later.
   ReDim dArr(UBound(vVals) - 1, 1 To 1)
   For Each vValue In vVals
      'Note the use of the Dictionary object to exclude double values
      If Not IsEmpty(vValue) And Not oDic.exists(vValue) Then
         dArr(i, 1) = vValue
         oDic.Add vValue, Nothing
         i = i + 1
      End If
   Next vValue
   'Free memory by removing the Dictionary object and vVals from memory
   Set oDic = Nothing
   Erase vVals
   'Remove old data
   myRange.Clear
   'Dump dArr values in worksheet
   myRange.Resize(i).Value = dArr
End Sub

Em đọc hoa cả mắt mà không hiểu được công thức. (Chắc tị dốt quá). Trường hợp của cachep87 xử lý như cách của 170987 là đúng ý rồi.
 
minhthien321

minhthien321

Sơ cấp
9/11/09
6
2
3
47
TPHCM
Em đọc hoa cả mắt mà không hiểu được công thức. (Chắc tị dốt quá). Trường hợp của cachep87 xử lý như cách của 170987 là đúng ý rồi.

Bạn không hiểu cũng phải thôi bởi chưa được hướng dẫn sử dụng trước khi dùng. Dưới đây là Hàm Lọc Duy Nhất của Thầy NDU của GPE đây:

Mã:
Function Unique2DArray(ByVal sArray, ByVal ColIndex As Long, ByVal HasTitle As Boolean)
    Dim TmpArr, KeyArr, Tmp, i As Long, j As Long, Arr
    On Error Resume Next
    TmpArr = sArray
    ColIndex = ColIndex + LBound(TmpArr, 2) - 1
    With CreateObject("Scripting.Dictionary")
        For i = LBound(TmpArr, 1) - HasTitle To UBound(TmpArr, 1)
            Tmp = TmpArr(i, ColIndex)
            If Not .Exists(Tmp) And Tmp <> "" Then .Add Tmp, i
        Next
        If .Count Then
            KeyArr = .Keys
            ReDim Arr(LBound(KeyArr) + LBound(TmpArr, 1) To UBound(KeyArr) - HasTitle + LBound(TmpArr, 1), LBound(TmpArr, 2) To UBound(TmpArr, 2))
            For i = LBound(KeyArr) To UBound(KeyArr)
                For j = LBound(TmpArr, 2) To UBound(TmpArr, 2)
                    Arr(i - HasTitle + LBound(TmpArr, 1), j) = TmpArr(.Item(KeyArr(i)), j)
                Next
            Next
            If HasTitle Then
                For j = LBound(TmpArr, 2) To UBound(TmpArr, 2)
                    Arr(LBound(TmpArr, 1), j) = TmpArr(LBound(TmpArr, 1), j)
                Next
            End If
            Unique2DArray = Arr
        End If
    End With
End Function

Và dưới đây là cách sử dụng:

Mã:
Sub Test1()
    Dim sArray, Arr, TG As Double
   [COLOR="#006400"] 'TG = Timer[/COLOR]
    sArray = Range(Sheet1.[A3], Sheet1.[A65536].End(xlUp)).Resize(, 7)
    Arr = Unique2DArray(sArray, 2, False) '<< Neu True thi co tieu de, nhung lay luon hang tieu de, nguoc lai.
    If IsArray(Arr) Then Sheet1.Range("J2").Resize(UBound(Arr, 1), 7).Value = Arr
   [COLOR="#006400"] 'MsgBox Format(Timer - TG, "0.000000")[/COLOR]
End Sub

Các bạn không hiểu thì xin hỏi tiếp nhé! Tốc độ nhanh hơn của Anh Duyệt luôn đó! Đặc biệt nó có tiện ích là có tiêu đề và không tiêu đề!
 
  • Like
Reactions: vacandem
V

vacandem

Guest
11/7/11
2
0
1
52
Hà nội
Bạn không hiểu cũng phải thôi bởi chưa được hướng dẫn sử dụng trước khi dùng. Dưới đây là Hàm Lọc Duy Nhất của Thầy NDU của GPE đây:
..........................
Các bạn không hiểu thì xin hỏi tiếp nhé! Tốc độ nhanh hơn của Anh Duyệt luôn đó! Đặc biệt nó có tiện ích là có tiêu đề và không tiêu đề!
Cho em hỏi sau khi copy đoạn mã trên vào file rồi thì sử dụng thế nào ạ
 
B

bo ngang

Sơ cấp
15/7/14
49
8
8
37
hà nội
Em có 1 danh sách các nhà cung cấp hàng hóa cho 1 công trình trong 1 tháng. Một nhà cung cấp có thể xuất hiện 1 hay nhiều ngày khác nhau trên bảng kê. Em muốn lọc ra danh sách các nhà cung cấp trong 1 tháng thì phải làm như thế nào? (Ví dụ: A,B,C,B,C,D, --> lọc ra: A,B,C,D). Mong anh chị và các Bạn tư vấn giúp! Em xin cảm ơn!
@@ em thấy các bác viết lằng nhằng khó hiểu quá, em đang dùng Add-in A-Tools lọc ra để làm báo cáo thanh toán với các nhà cung cấp, rất nhanh mà dễ cực ỳ luôn, bác thử liên hệ với bên đấy xem họ hỗ trợ cho, dùng cái đó nhanh mà hiệu quả lắm
link đây bác nhé
http://bluesofts.net/giai-phap-phan...-thao-va-quan-tri-du-lieu-excel-qua-mang.html
 
B

Bảoan150892

Guest
29/12/14
1
0
1
32
mọi người cho mình hỏi mình có một bảng tính về số ngày đi công tác của những người trong cơ quan, nhưng mình muốn lọc ra các giá trị trùng nhau thì làm như thế nào? Vd: Nguyễn Văn A có số ngày đi công tác là: 10/12/2014-13/12/2014 và 11/12/2014. Vì ngày 11/12/2014 lại nằm trong khoảng từ ngày 10 đến ngày 13 nên mình muốn loại bỏ.
PS: một người có rất nhiều ngày đi công tác, mỗi lần đi trong các khoảng từ ngày này đến ngày kia.
xin cảm ơn mọi người
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
mọi người cho mình hỏi mình có một bảng tính về số ngày đi công tác của những người trong cơ quan, nhưng mình muốn lọc ra các giá trị trùng nhau thì làm như thế nào? Vd: Nguyễn Văn A có số ngày đi công tác là: 10/12/2014-13/12/2014 và 11/12/2014. Vì ngày 11/12/2014 lại nằm trong khoảng từ ngày 10 đến ngày 13 nên mình muốn loại bỏ.
PS: một người có rất nhiều ngày đi công tác, mỗi lần đi trong các khoảng từ ngày này đến ngày kia.
xin cảm ơn mọi người
đang bùa tiền công tác à, chứ thực tế sao có trùng được
 
L

Loan Nguyễn 1990

Guest
26/2/15
1
0
1
33
Bạn thử dùng cách này nhé:
Bạn bôi đen vùng dữ liệu (ví dụ màu xanh theo file đính kèm)
Sau đó vào Data -> Remove Duplicates, xuất hiện bảng ->Chọn unselect all-> Tích vàoTên hàng. là sẽ tự động lọc cho bạn rồi đó.
 

Đính kèm

  • gdfyhrtdyhtrh.xls
    39 KB · Lượt xem: 1,553
T

thutrang1905

Trung cấp
22/7/14
148
12
18
34
Linh Đàm, Hà Nội
starnpos.com
consolidate là tính năng kết hợp thông tin từ nhiều nguồn khác nhau, với các phép tính khác nhau ( cộng, đếm ...... ). Ở đây mình chỉ lọc danh sách nhà cung cấp thôi. Nếu sử dụng consolidate sẽ phải có cột phụ.




- C1 & C2: Nhập thủ công thì rất đơn giản, nhưng khi có phát sinh thêm nhà cung cấp thì lại nhập thêm Bạn ah.

- Cách 3: Cũng là 1 cách để lọc được danh sách nhà cung cấp. Nhưng ý mình muốn lọc ra cột riêng (hình 1), vậy có thể đặt công thức được không?
hình:
1.png


Cảm ơn nguoiconxunuiIChiNoVa đã tư vấn giúp mình!:015:
consolidate là báo cáo tổng hợp rồi
 
T

thutrang1905

Trung cấp
22/7/14
148
12
18
34
Linh Đàm, Hà Nội
starnpos.com
mọi người cho mình hỏi mình có một bảng tính về số ngày đi công tác của những người trong cơ quan, nhưng mình muốn lọc ra các giá trị trùng nhau thì làm như thế nào? Vd: Nguyễn Văn A có số ngày đi công tác là: 10/12/2014-13/12/2014 và 11/12/2014. Vì ngày 11/12/2014 lại nằm trong khoảng từ ngày 10 đến ngày 13 nên mình muốn loại bỏ.
PS: một người có rất nhiều ngày đi công tác, mỗi lần đi trong các khoảng từ ngày này đến ngày kia.
xin cảm ơn mọi người
Lịch công tác sao lại trùng nhau như vậy được nhỉ , ngay từ khâu nhập dữ liệu đã không có chuyện trùng nhâu như vậy rồi chứ bạn?
 
N

ngochoidong

Guest
28/2/13
3
0
1
56
vung tau
Em có 1 danh sách các nhà cung cấp hàng hóa cho 1 công trình trong 1 tháng. Một nhà cung cấp có thể xuất hiện 1 hay nhiều ngày khác nhau trên bảng kê. Em muốn lọc ra danh sách các nhà cung cấp trong 1 tháng thì phải làm như thế nào? (Ví dụ: A,B,C,B,C,D, --> lọc ra: A,B,C,D). Mong anh chị và các Bạn tư vấn giúp! Em xin cảm ơn!
Nếu bạn dùng excel2007 thì có sẵn trong menu đó. Vào Data/Remove duplicates
Còn nếu bạn dùng excel 2003 thì có thể dùng pivot hoặc filter advance- tích vào unique
 
N

ngochoidong

Guest
28/2/13
3
0
1
56
vung tau
Lịch công tác sao lại trùng nhau như vậy được nhỉ , ngay từ khâu nhập dữ liệu đã không có chuyện trùng nhâu như vậy rồi chứ bạn?
Để theo dõi ngày đi công tác nhằm khỏi thanh toán trùng thì bạn nên chịu khó làm một cái bảng chấm công cho dễ chịu.
 

Xem nhiều

Webketoan Zalo OA