Hàm sắp xếp có điều kiện! (1 người xem)

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

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

majoson

Thành viên chính thức
Tham gia
14/2/08
Bài viết
92
Được thích
2
Chào các bạn,

Tôi có trường hợp này nhờ giúp đỡ như file đính kèm. Tôi cần hàm sắp xếp có điều kiện từ lớn nhất đến nhỏ nhất, và danh sách khách hàng rất lớn. Điều kiện là không dùng Pivot. Khi cập nhật ở danh sách khách hàng (tên và số lượng) thì tự động 5 dòng đầu tiên sẽ lấy ra kết quả khách hàng có sản lượng từ cao nhất đến thấp.

Xin cám ơn trước.
 

File đính kèm

Chào các bạn,

Tôi có trường hợp này nhờ giúp đỡ như file đính kèm. Tôi cần hàm sắp xếp có điều kiện từ lớn nhất đến nhỏ nhất, và danh sách khách hàng rất lớn. Điều kiện là không dùng Pivot. Khi cập nhật ở danh sách khách hàng (tên và số lượng) thì tự động 5 dòng đầu tiên sẽ lấy ra kết quả khách hàng có sản lượng từ cao nhất đến thấp.

Xin cám ơn trước.

Bạn nói là danh sách rất dài, nên hàm mảng không phải là một lựa chọn tốt
nếu ko xài pivot chắc fai xài vba
===========
đây cthuc mảng
tại F3 đặt 2 name
Mã:
tong=SUMIFS(Sheet1!$C$3:$C$17;Sheet1!$B$3:$B$17;Sheet1!$B$3:$B$17)

Mã:
dk=TONG*(COUNTIF(Sheet1!$F$2:$F2;Sheet1!$B$3:$B$17)=0)

cthuc tại
Mã:
F3=INDEX($B$3:$B$17;MATCH(LARGE(dk;ROW(1:1));TONG;0))
 
Chào bạn,

Kết quả tôi tính ra được (theo công thức) thì còn chút gì đó không giống như đáp án. Bạn có thể vui lòng chỉ thêm chút nữa nhé. Xin cám ơn.



Bạn nói là danh sách rất dài, nên hàm mảng không phải là một lựa chọn tốt
nếu ko xài pivot chắc fai xài vba
===========
đây cthuc mảng
tại F3 đặt 2 name
Mã:
tong=SUMIFS(Sheet1!$C$3:$C$17;Sheet1!$B$3:$B$17;Sheet1!$B$3:$B$17)

Mã:
dk=TONG*(COUNTIF(Sheet1!$F$2:$F2;Sheet1!$B$3:$B$17)=0)

cthuc tại
Mã:
F3=INDEX($B$3:$B$17;MATCH(LARGE(dk;ROW(1:1));TONG;0))
 

File đính kèm

Sắp xếp có điều kiện

Chào bạn,

Để rõ hơn, tôi xin post lại vấn đề như trong file đính kèm nhé. Xin cám ơn nhiều!


Bạn nói là danh sách rất dài, nên hàm mảng không phải là một lựa chọn tốt
nếu ko xài pivot chắc fai xài vba
===========
đây cthuc mảng
tại F3 đặt 2 name
Mã:
tong=SUMIFS(Sheet1!$C$3:$C$17;Sheet1!$B$3:$B$17;Sheet1!$B$3:$B$17)

Mã:
dk=TONG*(COUNTIF(Sheet1!$F$2:$F2;Sheet1!$B$3:$B$17)=0)

cthuc tại
Mã:
F3=INDEX($B$3:$B$17;MATCH(LARGE(dk;ROW(1:1));TONG;0))
 

File đính kèm

Chào bạn,

Kết quả tôi tính ra được (theo công thức) thì còn chút gì đó không giống như đáp án. Bạn có thể vui lòng chỉ thêm chút nữa nhé. Xin cám ơn.

name
Mã:
dk=tong*(COUNTIF(Sheet1!$F$2:$F[COLOR=#ff0000]$[/COLOR]2;Sheet1!$B$3:$B$17)=0)

bạn phải thả một đâu cho nó chạy chứ
Mã:
dk=tong*(COUNTIF(Sheet1!$F$2:$F2;Sheet1!$B$3:$B$17)=0)

nhưng mà cthuc này, nếu sàn lượng của 2 kh trùng nhau thì cthuc sai,
==================
làm như vạy loại được trường hợp 2 kh có sl trùng
Mã:
dk=SUMIFS(Sheet1!$C$3:$C$17;Sheet1!$B$3:$B$17;Sheet1!$B$3:$B$17)*(COUNTIF(Sheet1!$F$2:$F2;Sheet1!$B$3:$B$17)=0)

Mã:
F3=INDEX($B$3:$B$17;MATCH(MAX(dk);dk;0))
 
Lần chỉnh sửa cuối:
Tôi thật sự cảm ơn anh nhiều. Tôi sẽ điều chỉnh thêm và nếu không được có thể sẽ tìm anh giúp thêm. Xin cám ơn
 
bạn thêm đk vào hàm sumifs

Chào anh,

Anh giúp giải thích thêm cho công thức phía sau name dk: countif này để làm gì vậy anh? (COUNTIF(Sheet1!$H$4:$H4;Sheet1!$D$5:$D$19)=0)

Hơn nữa, nếu em chọn tháng 2.2013 thì ra thứ tự 1-2-3 đều là 1 khách hàng. Danh sách của em gần 10.000 KH thì điều chỉnh công thức lên 10000 dòng và máy chạy rất chậm.

Còn cách nào khác không anh
 
Anh GauGau xem dùm em file này nhé. Em thấy cách xếp hạng của nó khá hay (em lưu của anh, chị nào đó trên diễn đàn này). Tuy nhiên, cái em cần mở rộng hơn là khi chọn theo tháng hoặc năm thì nó sẽ tự update sau khi em update dữ liệu.
 

File đính kèm

Anh GauGau xem dùm em file này nhé. Em thấy cách xếp hạng của nó khá hay (em lưu của anh, chị nào đó trên diễn đàn này). Tuy nhiên, cái em cần mở rộng hơn là khi chọn theo tháng hoặc năm thì nó sẽ tự update sau khi em update dữ liệu.
Nếu dữ liệu của bạn khoảng 10.000 dòng thì thử dùng VBA xem sao.
Và muốn dùng VBA thì bạn nên đưa file của bạn lên, dữ liệu giống thật khoảng 100 dòng cũng được.
 
Anh GauGau xem dùm em file này nhé. Em thấy cách xếp hạng của nó khá hay (em lưu của anh, chị nào đó trên diễn đàn này). Tuy nhiên, cái em cần mở rộng hơn là khi chọn theo tháng hoặc năm thì nó sẽ tự update sau khi em update dữ liệu.

mấu chốt của nó nằm ở chổ
Mã:
STT=RANK(Vung,Vung)+ROW(Vung)/100
với "vung" là name động của cột C

còn cthức của nó vẫn là cthức mảng, như bài #2 tôi có nói: số liệu lớn thì cthức mảng không phải là lựa chọn tốt,
bạn đưa file thật của bạn lên đi, anh Bate giúp cho bạn
==========
ah, mà bài này chỉ sắp xếp theo cột D thôi nha bạn, mã bện cột C là duy nhất (không có tính tổng như yêu cầu của bài bạn)
 
Lần chỉnh sửa cuối:
Nếu dữ liệu của bạn khoảng 10.000 dòng thì thử dùng VBA xem sao.
Và muốn dùng VBA thì bạn nên đưa file của bạn lên, dữ liệu giống thật khoảng 100 dòng cũng được.
Chào anh Ba Tê, tôi đã đưa file rồi đó anh, tương tự như file XepHang2 đó anh.
 
Chào anh Ba Tê, tôi đã đưa file rồi đó anh, tương tự như file XepHang2 đó anh.
Tương tự là sao đây, mỗi mã trong 1 tháng là duy nhất không trùng phải không, chỉ xếp theo số lượng thôi phải không?...?
Nếu khác thì ráng chịu nhé, đã nói là file phải giống thật, yêu cầu phải đầy đủ.
Thay đổi ô H2 hoặc I2 là code chạy.
 

File đính kèm

Tương tự là sao đây, mỗi mã trong 1 tháng là duy nhất không trùng phải không, chỉ xếp theo số lượng thôi phải không?...?
Nếu khác thì ráng chịu nhé, đã nói là file phải giống thật, yêu cầu phải đầy đủ.
Thay đổi ô H2 hoặc I2 là code chạy.

Chào anh Ba Tê,

VBA thật là món ăn khó nuốt của em vì em không hiểu gì về nó. Giờ data đang nằm 2 sheet nhưng em không biết chỉnh sửa như thế nào. Nhờ anh giúp đỡ.
 

File đính kèm

Chào anh Ba Tê,

VBA thật là món ăn khó nuốt của em vì em không hiểu gì về nó. Giờ data đang nằm 2 sheet nhưng em không biết chỉnh sửa như thế nào. Nhờ anh giúp đỡ.
Đã nói từ đầu là đưa file giống thật đi, "tương tự" để làm khó nhau hoài, cái này chưa biết là thật chưa? Dữ liệu gì mà mấy chục ngàn dòng nhưng chỉ có vài dòng có số liệu.
Nhớ Enable Macros, thay đổi ô B2 hoặc C2 sẽ có kết quả lọc.
 

File đính kèm

Đã nói từ đầu là đưa file giống thật đi, "tương tự" để làm khó nhau hoài, cái này chưa biết là thật chưa? Dữ liệu gì mà mấy chục ngàn dòng nhưng chỉ có vài dòng có số liệu.
Nhớ Enable Macros, thay đổi ô B2 hoặc C2 sẽ có kết quả lọc.

Anh Ba Tê xem giúp em với nhé. Sao VBA em gắn vào nó không chạy anh ơi.
 

File đính kèm

Anh Ba Tê xem giúp em với nhé. Sao VBA em gắn vào nó không chạy anh ơi.
File này thì có giống gì file bạn nhờ giúp luc trước, Code chạy được mới lạ!
Bạn xem lại cách bạn muốn trao đổi với các TV GPE từ bài #12 của bạn đi.
Tạm biệt bạn.
Vĩnh biệt Topic này.
 
File này thì có giống gì file bạn nhờ giúp luc trước, Code chạy được mới lạ!
Bạn xem lại cách bạn muốn trao đổi với các TV GPE từ bài #12 của bạn đi.
Tạm biệt bạn.
Vĩnh biệt Topic này.

Hiz, đừng vĩnh biệt topic này anh Ba Tê. Vì em nghĩ nó tương tự nên set vậy mà. Anh xem giúp với nhé.
 
Anh @Ba Tê ơi, anh giúp em bài này với nha. Vì chưa có nhiều kinh nghiệm trao đổi trên diễn đàn nên bị như vậy. Anh rộng lượng và có kiến thức. Anh giúp chút xíu nữa là được, còn em giờ nghĩ hết ra rồi. Sắp sang năm mới nữa!
 

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

Back
Top Bottom