Giúp đỡ về filter!

Liên hệ QC

customs45

Thành viên mới
Tham gia
12/3/13
Bài viết
20
Được thích
1
Kính chào các thầy/cô và các anh, chị trên diễn đàn GPEX
Em có file sau và muốn nhờ các anh chị, thầy, cô chỉ giáo.
Chẳng là trên file của em ở sheet dữ liệu có các cột là Vùng, Tỉnh và Khách hàng được thiết kế theo nhóm và em muốn làm thế nào để được như theo sheet kết quả mà không dùng phương pháp thủ công.
Mong các anh chị giúp em giải quyết vấn đề ạ.
Em cảm ơn quí thầy cô, cùng các anh chị.
File đính kèm
P/s: Hiện tại em đang dùng bộ MS Office 2010 nhé!

View attachment Cau hoi 1.xls.xlsx
 
Lần chỉnh sửa cuối:
Kính chào các thầy/cô và các anh, chị trên diễn đàn GPEX
Em có file sau và muốn nhờ các anh chị, thầy, cô chỉ giáo.
Chẳng là trên file của em ở sheet dữ liệu có các cột là Vùng, Tỉnh và Khách hàng được thiết kế theo nhóm và em muốn làm thế nào để được như theo sheet kết quả mà không dùng phương pháp thủ công.
Mong các anh chị giúp em giải quyết vấn đề ạ.
Em cảm ơn quí thầy cô, cùng các anh chị.
File đính kèm
P/s: Hiện tại em đang dùng bộ MS Office 2010 nhé!

View attachment 102237
1/ Muốn tự động thì dùng VBA, Enable Macros rồi bấm nút 1 phát là xong
2/ Tui xài OF.2003, bạn thử xem OF.2010 có chạy được không.
 

File đính kèm

  • GPE.rar
    48 KB · Đọc: 16
Kính chào các thầy/cô và các anh, chị trên diễn đàn GPEX
Em có file sau và muốn nhờ các anh chị, thầy, cô chỉ giáo.
Chẳng là trên file của em ở sheet dữ liệu có các cột là Vùng, Tỉnh và Khách hàng được thiết kế theo nhóm và em muốn làm thế nào để được như theo sheet kết quả mà không dùng phương pháp thủ công.
Mong các anh chị giúp em giải quyết vấn đề ạ.
Em cảm ơn quí thầy cô, cùng các anh chị.
File đính kèm
P/s: Hiện tại em đang dùng bộ MS Office 2010 nhé!

View attachment 102237
Chưa đọc bài của bác Ba Tê, không biết có cùng ý tưởng không nữa, nhưng "lỡ" giải rồi nên cứ đưa lên cho đỡ "uổng", và cũng là một phần muốn học thêm một chút về Array:
[GPECODE=vb]Private Sub Worksheet_Activate()
Dim Temp, Arr(), i As Long, j As Long, k As Long
Temp = Sheet1.[A3:E5000]
ReDim Arr(1 To UBound(Temp), 1 To 5)
For j = 1 To 5
Arr(1, j) = Temp(1, j)
Next
k = 1
For i = 2 To UBound(Temp)
If Len(Temp(i, 4)) Then
k = k + 1
For j = 1 To 4
If Len(Temp(i, j)) Then
Arr(k, j) = Temp(i, j)
Else
Arr(k, j) = Arr(k - 1, j)
End If
Next
Arr(k, 5) = Temp(i, 5)
End If
Next
[C2:G5000].Clear
[C1].Resize(k, 5) = Arr
[C1].CurrentRegion.Borders.LineStyle = 1
End Sub[/GPECODE]
Tui xài Excel 2010, chạy êm ru!
 

File đính kèm

  • Cau hoi 1.xlsm
    48.3 KB · Đọc: 9
Cảm ơn các bác đã tận tình trợ giúp.
Nhưng thú thực với các bác là em mới vào nghề chỉ biết sơ qua về excel chưa hiểu về ngôn ngữ VBA nên đọc lời giải của các bác em rất lơ ngơ. Em được biết trong MS 2010 chức năng text filters có hỗ trợ làm công việc như mục đích em muốn nhưng em chưa nắm được muốn nhờ các bác hướng dẫn làm theo cách đó ạ.

Được vậy em xin cảm ơn các bác, cùng quí thầy cô rất nhiều
 
Cảm ơn các bác đã tận tình trợ giúp.
Nhưng thú thực với các bác là em mới vào nghề chỉ biết sơ qua về excel chưa hiểu về ngôn ngữ VBA nên đọc lời giải của các bác em rất lơ ngơ. Em được biết trong MS 2010 chức năng text filters có hỗ trợ làm công việc như mục đích em muốn nhưng em chưa nắm được muốn nhờ các bác hướng dẫn làm theo cách đó ạ.

Được vậy em xin cảm ơn các bác, cùng quí thầy cô rất nhiều

vậy thì bạn

Để con trỏ vào vùng dữ liệu rùi

- Data / Auto Filter

- Click vào nut mũi tên xuống (filter button) ở cột Mã, rùi BỎ TÍCH Blank

- Chọn Copy toàn vùng đã được filter --> Paste sang sheet kết quả

- Bước cuối là dùng công thức (=) hoặc là copy cho các dữ liệu trống

là được
 
Cảm ơn các bác đã tận tình trợ giúp.
Nhưng thú thực với các bác là em mới vào nghề chỉ biết sơ qua về excel chưa hiểu về ngôn ngữ VBA nên đọc lời giải của các bác em rất lơ ngơ. Em được biết trong MS 2010 chức năng text filters có hỗ trợ làm công việc như mục đích em muốn nhưng em chưa nắm được muốn nhờ các bác hướng dẫn làm theo cách đó ạ.

Được vậy em xin cảm ơn các bác, cùng quí thầy cô rất nhiều
Không biết thì từ từ sẽ biết, ở trên bạn muốn như vầy:
...em muốn làm thế nào để được như theo sheet kết quả mà không dùng phương pháp thủ công.
Bây giờ bạn lại muốn hướng dẫn làm cách thủ công sao?
Tìm trên GPE cách Enable Macros, rồi bấm nút hưởng thụ kết quả thôi mà.
Hoặc như file của nghiaphuc thì chẳng cần bấm nút nữa, cứ mở sheet Ket Qua là có dữ liệu mới nhất được lọc.
--------------
Tham khảo link này xem có giúp ích gì cho bạn không.
http://www.giaiphapexcel.com/forum/...ting-trong-2007-nằm-ở-đâu&p=204215#post204215
 
Lần chỉnh sửa cuối:
Bác Ba Tê dạy rất phải!
Thú thực thủ công theo nghĩa của em ở đây là phải tìm từng khách hàng ở dòng đầu tiên rồi copy hết xuống các dòng trống, cứ làm như vậy lần lượt cho từng khách hàng chỉ có 1 -2 khách hàng thì không sao, chứ có cả trăm cả ngàn khách hàng thì làm như vậy cũng mệt.
Em thấy thao tác filter gì đó rất hay giữ nguyên được dữ liệu ban đầu và copy mục đích mình muốn sang 1 chỗ khác rất chính xác và nhanh tuy nó cũng là thủ công nhưng vẫn tốt hơn là cách mà em làm. nên em muốn học hỏi theo cách đó trước bởi 1 phần cải tiến tạm thời cách làm cũ rích của e và cũng bởi với kiến thức hạn hẹp của em để có thể hiểu được nó ạ
 
VBA quả thực là 1 kiến thức uyên thâm!
Bác Nghĩa Phục cho em hỏi là:
File em đăng lên DD là file đã rút gọn đi rồi, vấn đề là code của bác tạo cho thì em có thể ứng dụng cho các trường hợp khác được không hay chỉ dùng cho mỗi cái file em mới đăng lên thôi ạ?
Xem ra chỉ có VBA mới giải quyết được vấn đề của em rồi?
 
VBA quả thực là 1 kiến thức uyên thâm!
Bác Nghĩa Phục cho em hỏi là:
File em đăng lên DD là file đã rút gọn đi rồi, vấn đề là code của bác tạo cho thì em có thể ứng dụng cho các trường hợp khác được không hay chỉ dùng cho mỗi cái file em mới đăng lên thôi ạ?
Xem ra chỉ có VBA mới giải quyết được vấn đề của em rồi?
Hic, tôi tên là Phúc, Hoàng Nghĩa Phúc, chứ không phải là Phục!
Bạn cứ đưa dữ liệu thực của bạn vào trong file đó (tất nhiên là phải cùng cấu trúc như file bạn đã đưa) rồi chọn sheet Kết quả xem có được không. Nếu dữ liệu của bạn có nhiều hơn thì bạn sửa lại câu lệnh Temp = Sheet1.[A3:E5000] cho phù hợp.
Nếu vẫn không được thì có lẽ bạn phải đưa dữ liệu thực tế lên thôi bạn ạ.
 
Hic, tôi tên là Phúc, Hoàng Nghĩa Phúc, chứ không phải là Phục!
Bạn cứ đưa dữ liệu thực của bạn vào trong file đó (tất nhiên là phải cùng cấu trúc như file bạn đã đưa) rồi chọn sheet Kết quả xem có được không. Nếu dữ liệu của bạn có nhiều hơn thì bạn sửa lại câu lệnh Temp = Sheet1.[A3:E5000] cho phù hợp.
Nếu vẫn không được thì có lẽ bạn phải đưa dữ liệu thực tế lên thôi bạn ạ.
Ôi! Sorry bác Phúc vì sự bất tiện trên, tại em liếc tên nhanh quá nên sai sót.
Thú thực với bác là cấu trúc file chính của em khác so với file đưa lên diễn đàn rất nhiều nhưng vì đảm bảo tính cơ mật nên e không thể public file được em đành phải mò làm tay thủ công thôi bác, cũng chỉ trách em là không am hiểu về excel, biết rất rõ sự kì diệu của ngôn ngữ VBA nhưng em chưa tiếp cận được. :D
Chân thành cảm ơn sự nhiệt tình giúp đỡ của các bác rất nhiều!
Chúc các bác có sức khỏe dồi dào để luôn sẵn sàng giúp đỡ những Junior như chúng e!
 
Ôi! Sorry bác Phúc vì sự bất tiện trên, tại em liếc tên nhanh quá nên sai sót.
Thú thực với bác là cấu trúc file chính của em khác so với file đưa lên diễn đàn rất nhiều nhưng vì đảm bảo tính cơ mật nên e không thể public file được em đành phải mò làm tay thủ công thôi bác, cũng chỉ trách em là không am hiểu về excel, biết rất rõ sự kì diệu của ngôn ngữ VBA nhưng em chưa tiếp cận được. :D
Chân thành cảm ơn sự nhiệt tình giúp đỡ của các bác rất nhiều!
Chúc các bác có sức khỏe dồi dào để luôn sẵn sàng giúp đỡ những Junior như chúng e!
Nếu không ngại, bạn có thể gửi mail cho tôi theo địa chỉ: nghiaphuc@giaiphapexcel.com. Nếu làm được thì tôi sẽ giúp bạn, và đảm bảo tính bí mật của dữ liệu cho bạn.
 
Web KT
Back
Top Bottom