Vấn đề lọc dữ liệu (7 người xem)

Liên hệ QC

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

luminous223

Thành viên mới
Tham gia
9/7/19
Bài viết
11
Được thích
0
Cho mình hỏi từ bảng đầu tiên trong file này gồm loại xe và màu xe, mình muốn tạo ra một bảng nhỏ hơn có 2 cột như ở cột G và cột H thì làm thế nào ạ? Mong mọi người giải đáp vấn đề này cho.
 

File đính kèm

Cho mình hỏi từ bảng đầu tiên trong file này gồm loại xe và màu xe, mình muốn tạo ra một bảng nhỏ hơn có 2 cột như ở cột G và cột H thì làm thế nào ạ? Mong mọi người giải đáp vấn đề này cho.
Bạn xem file đúng chưa?
1. Sắp xếp dữ liệu
2. Tạo name "aa"
3. Đặt công thức tại H7 = TEXTJOIN(", ",TRUE,aa)
 

File đính kèm

Cho mình hỏi chỗ màu thì nhiều màu bị lặp lại. Làm sao để lọc cho đỡ bị trùng nhỉ?
1. Dùng chức năng remove duplicates: chọn 03 cột A,B,C ==> vào menu data ==> chọn remove duplicates ==> ok
2. Dùng VBA: nếu bạn muốn làm theo cách này mình sẽ làm tiếp
Bài đã được tự động gộp:

Cho mình hỏi chỗ màu thì nhiều màu bị lặp lại. Làm sao để lọc cho đỡ bị trùng nhỉ?
.
Bài đã được tự động gộp:

Mình không hiểu sao công thức lại hiểu lấy giá trị tham chiếu ở cột G7
bạn vào phần quản lý Name ==> xem cthức của Name "aa" =OFFSET(Sheet1!$A$1,MATCH(Sheet1!$G7,Sheet1!$A$2:$A$1000,0),2,COUNTIF(Sheet1!$A$2:$A$1000,Sheet1!$G7),)

bạn sẽ thấy phần công thức $G7 không bị khóa row (ngay từ khi bạn viết Name) ==> excel sẽ hiểu đây là giá trị đầu tiên sẽ tham chiếu đến.

Tóm lại là mình chỉ biết làm như thế nó sẽ ra kết quả như vậy còn tại sao ra kết quả như vậy thì không giải thích được :(
 
Lần chỉnh sửa cuối:
Mình không hiểu sao công thức lại hiểu lấy giá trị tham chiếu ở cột G7
1. Dùng chức năng remove duplicates: chọn 03 cột A,B,C ==> vào menu data ==> chọn remove duplicates ==> ok
2. Dùng VBA: nếu bạn muốn làm theo cách này mình sẽ làm tiếp
Bài đã được tự động gộp:


.
Bài đã được tự động gộp:


bạn vào phần quản lý Name ==> xem cthức của Name "aa" =OFFSET(Sheet1!$A$1,MATCH(Sheet1!$G7,Sheet1!$A$2:$A$1000,0),2,COUNTIF(Sheet1!$A$2:$A$1000,Sheet1!$G7),)

bạn sẽ thấy phần công thức $G7 không bị khóa row (ngay từ khi bạn viết Name) ==> excel sẽ hiểu đây là giá trị đầu tiên sẽ tham chiếu đến.

Tóm lại là mình chỉ biết làm như thế nó sẽ ra kết quả như vậy còn tại sao ra kết quả như vậy thì không giải thích được :(
Ý mình là lọc ở cái bảng nhỏ hơn có hai cột G và H ý. Ví dụ như ở cột H cái Air Blade có mấy cái màu lặp đi lặp lại như đen đỏ, đỏ đen trắng. Mình muốn nó chỉ xuất hiện một lần thôi như ở cái ví dụ mẫu mình ghi ở chỗ cột G Và H ban đầu ý. Mình thử bôi đen hai cột G và H rồi dùng cái remove vẫn thế.
 
1. Dùng chức năng remove duplicates: chọn 03 cột A,B,C ==> vào menu data ==> chọn remove duplicates ==> ok
2. Dùng VBA: nếu bạn muốn làm theo cách này mình sẽ làm tiếp
Bài đã được tự động gộp:


.
Bài đã được tự động gộp:


bạn vào phần quản lý Name ==> xem cthức của Name "aa" =OFFSET(Sheet1!$A$1,MATCH(Sheet1!$G7,Sheet1!$A$2:$A$1000,0),2,COUNTIF(Sheet1!$A$2:$A$1000,Sheet1!$G7),)

bạn sẽ thấy phần công thức $G7 không bị khóa row (ngay từ khi bạn viết Name) ==> excel sẽ hiểu đây là giá trị đầu tiên sẽ tham chiếu đến.

Tóm lại là mình chỉ biết làm như thế nó sẽ ra kết quả như vậy còn tại sao ra kết quả như vậy thì không giải thích được :(
À mình lọc 3 cột A B C thì cái bảng bé cũng tự lọc được luôn. Mà bắt buộc phải lọc 3 cột A B C chứ không lọc riêng 2 cột G và H được à bác.
 
Mình không quen sài hàm offset
Cách này của mình cũng cho ra kết quả tương tự nhưng dùng công thức mảng . công thức ở ô H7
={TEXTJOIN(", ";TRUE;IF($A$2:$A$1000=$G7;$C$2:$C$1000;""))}
 

File đính kèm

Chỉ giáo mình VBA trường hợp này đi bạn
Bạn xem file và code dưới đây nhé
Mã:
Function noi_mau(loaixe As String, mang_mau As Range) As String
Dim i As Long, SArr(), DArr(1 To 1000, 1 To 1), k As Long

SArr() = mang_mau.Value
For i = UBound(SArr) To 2 Step -1
    If Range("A" & i).Value = loaixe Then
        If SArr(i, 1) <> SArr(i - 1, 1) Then
            k = k + 1
            DArr(k, 1) = SArr(i - 1, 1)
        End If
    End If
Next
With WorksheetFunction
    noi_mau = .TextJoin(", ", True, DArr)
End With
End Function
 

File đính kèm

Bạn xem file và code dưới đây nhé
Mã:
Function noi_mau(loaixe As String, mang_mau As Range) As String
Dim i As Long, SArr(), DArr(1 To 1000, 1 To 1), k As Long

SArr() = mang_mau.Value
For i = UBound(SArr) To 2 Step -1
    If Range("A" & i).Value = loaixe Then
        If SArr(i, 1) <> SArr(i - 1, 1) Then
            k = k + 1
            DArr(k, 1) = SArr(i - 1, 1)
        End If
    End If
Next
With WorksheetFunction
    noi_mau = .TextJoin(", ", True, DArr)
End With
End Function
Nếu tên loại xe không nằm chung một cụm, hoặc là các màu không nằm gần nhau thì vẫn xãy ra trùng 2 màu trong kết quả
Em xin mạo mụi viết lại code :
cứ cho mảng DArr có những phần tử trùng nhau, rồi em thêm 1 bước so sánh phần tử nào trùng thì thành rỗng
Vì hàm textjont có khả năng loại những phần tử rỗng ra khỏi chuỗi
 

File đính kèm

Web KT

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

Back
Top Bottom