Bài toán khó: Lọc động theo nhiều lớp

Liên hệ QC

andythuy

Thành viên mới
Tham gia
24/8/10
Bài viết
41
Được thích
2
Chào cả nhà, mình có một bài toán khó, đưa lên đây nhờ các bạn hướng dẫn giúp.

Có 3 vùng cần lọc, Mã KH, Tên KH, Mua
Yêu cầu:
1. Trong danh sách sổ xuống của Autofilter gom các giá trị trùng nhau lại chỉ để chúng xuất hiện 1 lần (cho đỡ rối)
2. Sau khi lọc Mã KH thì phần Tên KH cũng chỉ còn lại các giá trị tương ứng của Mã KH đó
3. Sau khi lọc Tên KH thì phần Mua cũng chỉ còn lại các sp mà KH đó đã mua

Mình gửi file đính kèm ở đây

Chân thành cảm ơn cả nhà.
 

File đính kèm

  • Loc dong theo nhieu lop.xls
    16 KB · Đọc: 42
Chào cả nhà, mình có một bài toán khó, đưa lên đây nhờ các bạn hướng dẫn giúp.

Có 3 vùng cần lọc, Mã KH, Tên KH, Mua
Yêu cầu:
1. Trong danh sách sổ xuống của Autofilter gom các giá trị trùng nhau lại chỉ để chúng xuất hiện 1 lần (cho đỡ rối)
2. Sau khi lọc Mã KH thì phần Tên KH cũng chỉ còn lại các giá trị tương ứng của Mã KH đó
3. Sau khi lọc Tên KH thì phần Mua cũng chỉ còn lại các sp mà KH đó đã mua

Mình gửi file đính kèm ở đây


Chân thành cảm ơn cả nhà.
cái dữ liệu này chỉ dùng piviot là cực kỳ nhanh mà nhẹ
 

File đính kèm

  • Copy of Loc dong theo nhieu lop.xls
    21.5 KB · Đọc: 71
Mình xin gời 1 cách khác

Chọn lần lượt các ô từ trái sang ở dòng 22 trong file kèm theo.
 

File đính kèm

  • GPE_F.rar
    8.4 KB · Đọc: 85
cái dữ liệu này chỉ dùng piviot là cực kỳ nhanh mà nhẹ

Mình cũng đã dùng Pivot Table và đã làm được, tuy nhiên, do cách trình bày và phần không gian trong bài tập của mình chỉ dành cho phần lọc này đúng 1 dòng - ngoài ra còn có nhiều phần khác nên không tiện dùng pivot table

Có cách nào khác mà không phải dùng đến VBA và Pivot Table không cả nhà (vì dùng VBA qua một số máy bị diệt mất tiêu), mình đang nghĩ đến việc định nghĩa tên động nhưng chưa tìm ra cách...
 
Làm báo cáo Excel động chỉ bằng một công thức A-Tools

Mình cũng đã dùng Pivot Table và đã làm được, tuy nhiên, do cách trình bày và phần không gian trong bài tập của mình chỉ dành cho phần lọc này đúng 1 dòng - ngoài ra còn có nhiều phần khác nên không tiện dùng pivot table

Có cách nào khác mà không phải dùng đến VBA và Pivot Table không cả nhà (vì dùng VBA qua một số máy bị diệt mất tiêu), mình đang nghĩ đến việc định nghĩa tên động nhưng chưa tìm ra cách...

Làm báo cáo Excel động chỉ bằng một công thức A-Tools.

[video=youtube;NWZM6kJAPZE]http://www.youtube.com/watch?v=NWZM6kJAPZE&feature=related[/video]
 
Có phần mềm như bác Tuân thì quá tuyệt rồi,
Mình đã đặt thử tên động như thế này và đã lọc được tên khách hàng theo mã:
=IF(Sheet1!$A$22="A",Sheet1!$B$2:$B$7,IF(Sheet1!$A$22="B",Sheet1!$B$8:$B$12,Sheet1!$B$13:$B$17))

Vấn đề phát sinh ở chỗ nếu có nhiều hơn 7 mã KH thì lệnh IF bó tay và mình cũng chưa làm được cho cột Mua vì nó ở lớp 2 - số phương án sẽ tăng theo cấp số nhân nên cách đặt tên dùng lệnh IF này có vẻ như đang đi vào ngõ cụt rồi

Cả nhà giúp xem nhé!
 
Có phần mềm như bác Tuân thì quá tuyệt rồi,
Mình đã đặt thử tên động như thế này và đã lọc được tên khách hàng theo mã:
=IF(Sheet1!$A$22="A",Sheet1!$B$2:$B$7,IF(Sheet1!$A$22="B",Sheet1!$B$8:$B$12,Sheet1!$B$13:$B$17))

Vấn đề phát sinh ở chỗ nếu có nhiều hơn 7 mã KH thì lệnh IF bó tay và mình cũng chưa làm được cho cột Mua vì nó ở lớp 2 - số phương án sẽ tăng theo cấp số nhân nên cách đặt tên dùng lệnh IF này có vẻ như đang đi vào ngõ cụt rồi

Cả nhà giúp xem nhé!
Không đi vào ngõ cụt đâu, tại cái name của bạn nó..."hổng" chịu nhúc nhích, bài này nếu dùng công thức thì dữ liệu phải được sắp xếp như trong bài.
Còn cái này mình thực sự chưa hiểu:
- Dùng công thứ lọc Mã Kh duy nhất ra A,B,C ==> hiểu
- Dùng name động lọc ra Tên ứng với Mã : trong bài Mã A sẽ có 6 tên: 3 Dương và 3 Linh vậy lúc này muốn thể hiện là Linh, Dương hay vẫn 3 Linh, 3 Dương ==> chưa hiểu
Tạm thời mình dùng name để lọc Tên ứng với Mã, Mua ứng với Tên thôi nhé, có gì tính sau ( bài này mà làm bằng công thức thì hơi chua đấy)
 

File đính kèm

  • Locdonglop(1).xls
    19.5 KB · Đọc: 62
Báo cáo bác concogia
Mình xin lảm rõ hơn:
Hỏi: - Dùng name động lọc ra Tên ứng với Mã : trong bài Mã A sẽ có 6 tên: 3 Dương và 3 Linh vậy lúc này muốn thể hiện là Linh, Dương hay vẫn 3 Linh, 3 Dương ==> chưa hiểu
Trả lời: Mã A có 6 tên (3 Dương, 3 Linh), em muốn gộp các tên trùng nhau lại, ở đây là thành Linh và Dương
Mình mong bác giải thích thêm các công thức trong phần tên sau:

data=OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$200))
Sao bác không để luôn là Sheet1!$A$2:$A$200
bác giải thích cái này thì mình sẽ hiểu được "MaKH" và "ten" do chúng có cùng dạng công thức.

cot=IF(MATCH(data,data,0)=ROW(INDIRECT("1:"&ROWS(data))),ROW(INDIRECT("1:"&ROWS(data))),"")

mua=OFFSET(INDIRECT(ADDRESS(MATCH(Sheet1!E10,ten,0)+1,3)),,,COUNTIF(ten,Sheet1!E10)) mà kỳ lạ quá, phần in đậm trong công thức này tự động thay đổi khi mình để ô sáng vào các ô khác nhau (lùi một ô sáng trái so với ô được chọn), dòng trên là khi mình để ô sáng tại F10

Bác giải thích thì mình cũng sẽ hiểu được TenKH

Chân thành cảm ơn bác
 
data=OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$20 0))
Sao bác không để luôn là Sheet1!$A$2:$A$200
Khai báo vùng dữ liệu từ A2 xuống số dòng bằng với số dòng là kết quả của công thức COUNTA(Sheet1!$A$2:$A$20 0) ==> mục đích chỉ xuất hiện các dòng có dữ liệu trong khoảng A2 ==> A200 (khi tạo Validation sẽ không xuất hiện các khoảng trắng phía dưới), _ dữ liệu trong vùng A2:A200 phải liên tục
cot=IF(MATCH(data,data,0)=ROW(INDIRECT("1:"&ROWS(d ata))),ROW(INDIRECT("1:"&ROWS(data))),"")
Công thức này để tìm thứ tự xuất hiện của dữ liệu duy nhất trong mảng muốn trích lọc ( trong bài này là thứ tự xuất hiện của A, B, C)
mua=OFFSET(INDIRECT(ADDRESS(MATCH(Sheet1!E10,ten,0)+1,3)),,,COUNTIF(ten,Sheet1!E10)) mà kỳ lạ quá, phần in đậm trong công thức này tự động thay đổi khi mình để ô sáng vào các ô khác nhau (lùi một ô sáng trái so với ô được chọn), dòng trên là khi mình để ô sáng tại F10
Đây là name "nhúc nhích" khi tạo name này phải đặt con trỏ đúng vị trí mới cho kết qủa đúng (trong bài name "mua" bạn đặt tại cell TenKh khi tạo)==> mục đích tìm địa chỉ vùng ứng với điều kiện: thí dụ name TenKh sẽ tìm vùng chứa dữ liệu ứng với tên từng A, B, hay C. (dữ liệu trong vùng đó có thể thêm, bớt tùy ý mà không ảnh hưởng đến kết quả của name
Mình diễn đạt không được trơn tru lắm, hy vọng bạn hiểu và tạo được mấy cái name "nhúc nhích"
Hỏi: - Dùng name động lọc ra Tên ứng với Mã : trong bài Mã A sẽ có 6 tên: 3 Dương và 3 Linh vậy lúc này muốn thể hiện là Linh, Dương hay vẫn 3 Linh, 3 Dương ==> chưa hiểu
Trả lời: Mã A có 6 tên (3 Dương, 3 Linh), em muốn gộp các tên trùng nhau lại, ở đây là thành Linh và Dương
Cái này bạn xem trong công thức lọc dữ liệu duy nhất ( cột Mã khách hàng) ở trên để áp dụng vào cột đó nhé
 
Trích tự động dữ liệu từ sheet Nhập sang sheet Báo cáo

Em muốn nhập dữ liệu vào sheet nhập và tự chuyển dữ liệu nhập sang sheet Tổng hợp ( dữ liệu nhập có thể tạo list trong ô danh mục và nơi sản xuất, đơn vị tính ) em có gửi file đính kèm nhờ ACE giúp đỡ. Em xin cảm ơn !
 

File đính kèm

  • Book1.xls
    60 KB · Đọc: 16
Bạn kiểm tra xem thế nào
 
Web KT
Back
Top Bottom