wuchengcai
Thành viên chính thức


- Tham gia
- 22/6/10
- Bài viết
- 87
- Được thích
- 15
Công thức tại I:J, bạn làm cho các vùng khác thử xem.Nhờ các bạn hỗ trợ giúp hàm để Đánh số thứ tự LỚN-NHỎ theo nhóm với 2 điều kiện.
Mình dùng hàm RANK nhưng tốn thời gian quá vì có khi dữ liệu của mình hơn 1000 dòng.
=SUMPRODUCT(($E$2:$E$30=$E2)*(G$2:G$30<=G2)*(G$2:G$30<>""))
Công thức của bạn sẽ không đúng tại cột M, R, V, AA nếu trong các cột G, H, I, J có 1 ô rỗng tương ứng.Công thức tại I:J, bạn làm cho các vùng khác thử xem.
Mã:=SUMPRODUCT(($E$2:$E$30=$E2)*(G$2:G$30<=G2)*(G$2:G$30<>""))
Bạn tự đặt thêm điều kiện cho trường hợp rỗng hoặc = 0 chứ. Ví dụ công thức đặt ở T2Công thức của bạn sẽ không đúng tại cột M, R, V, AA nếu trong các cột G, H, I, J có 1 ô rỗng tương ứng.
=IF(J2=0,"",SUMPRODUCT(($E$2:$E$30=$E2)*(J$2:J$30>=J2)*(J$2:J$30<>"")))
Việc gì phải tự, Khi gõ vài ký tự lên đây, có người làm sẵn luôn.Bạn tự đặt thêm điều kiện cho trường hợp rỗng hoặc = 0 chứ. Ví dụ công thức đặt ở T2
Tôi chỉ đưa bạn giải pháp thôi.Mã:=IF(J2=0,"",SUMPRODUCT(($E$2:$E$30=$E2)*(J$2:J$30>=J2)*(J$2:J$30<>"")))
I2=RANK(G2,OFFSET($G$1,MATCH(E2,$E$2:$E$30,),,COUNTIF($E$2:$E$30,E2)),1)
Mình làm được rồi.6000 công thức mảng với mảng 1000 dòng thì sẽ bị chậm. Bạn thử công thức này xem.
Mã:I2=RANK(G2,OFFSET($G$1,MATCH(E2,$E$2:$E$30,),,COUNTIF($E$2:$E$30,E2)),1)
Mình áp dụng công thức của bạn cho các cột R & AA thì xuất hiện lỗi khi xếp số thứ tự từ R17:R75 và AA17:AA75.Bạn tự đặt thêm điều kiện cho trường hợp rỗng hoặc = 0 chứ. Ví dụ công thức đặt ở T2
Tôi chỉ đưa bạn giải pháp thôi.Mã:=IF(J2=0,"",SUMPRODUCT(($E$2:$E$30=$E2)*(J$2:J$30>=J2)*(J$2:J$30<>"")))
Công thức này, nếu dữ liệu trùng sẽ không giống hàm Rank, muôn` giống chỉnh lại:Mình áp dụng công thức của bạn cho các cột R & AA thì xuất hiện lỗi khi xếp số thứ tự từ R17:R75 và AA17:AA75.
Mình giải quyết lỗi trên bằng hàm này luôn rùi:Công thức này, nếu dữ liệu trùng sẽ không giống hàm Rank, muôn` giống chỉnh lại:
=IF(F2=0,"",1+SUMPRODUCT(($E$2:$E$75=$E2)*(Q$2:Q$75>Q2)*(Q$2:Q$75<>"")))
Hoặc dùng COUNTIFS()
Dùng COUNTIFS() để xếp hạngMình giải quyết lỗi trên bằng hàm này luôn rùi:
=IF(F2=0,"",RANK(Q2,OFFSET($Q$1,MATCH(E2,$E$2:$E$45,),,COUNTIF($E$2:$E$45,E2))))
Có vấn đề mới phát sinh (file đính kèm), mình dùng hàm của bạn và hàm trên của mình để đặt điều kiện nhưng cột K khi xếp hạng đều gộp nhóm điều kiện cột H để xếp.
Bạn giúp mình nhé.
Cám ơn!
Ý của mình là ngoài dựa vào điều kiện của cột E để xếp hạng, còn căn cứ vào điều kiện cột H để xếp hạng cho ra kết quả cột L, với điều kiện cột H là:Dùng COUNTIFS() để xếp hạng
Giúp mình chỉ ra công thức cụ thể cho file mình gửi luôn đi.Tham khảo link này:
COUNTIFS (Hàm COUNTIFS)
Cú pháp: COUNTIFS(phạm vi tiêu chí 1, tiêu chí 1, [phạm vi tiêu chí 2, tiêu chí 2]…)support.office.com
Dựa trên Tiêu chí nào (hay đặc điểm gì) để bạn biết mà phân ra được các Vùng như dưới đây, để bạn tô màu chúng vậy?Ý của mình là ngoài dựa vào điều kiện của cột E để xếp hạng, còn căn cứ vào điều kiện cột H để xếp hạng cho ra kết quả cột L, với điều kiện cột H là:
1. Toàn bộ là ô rỗng thì xếp hạng bình thường (H1:H14)
2. Điều kiện nào chỉ xuất hiện 1 lần (H15:H26) và các ô còn lại là rỗng thì xếp hạng chung với các ô rỗng
3. Điều kiện nào chỉ xuất hiện 1 lần (H27:H40) và các ô còn lại có điều kiện thì xếp hạng chung với các ô có điều kiện
4. Điều kiện nào xuất hiện 2 lần trở lên (H41:H43), (H44:H59), (H60:H72) thì tách ra xếp hạng riêng.
Hiện tại, cột L mình dùng hàm RANK nhưng nếu dữ liệu hơn 20000 dòng thì thủ công quá, bạn có cách nào nhanh hơn không?
Nếu COUNTIFS() thì cấu trúc hàm thế nào?
M2=IF(G2,COUNTIFS($AC$2:$AC50,AC2,$G$2:$G50,"<"&G2)+COUNTIFS($AC$2:$AC2,AC2,$G$2:$G2,G2),"")
Mình dựa vào Tiêu chí này:Dựa trên Tiêu chí nào (hay đặc điểm gì) để bạn biết mà phân ra được các Vùng như dưới đây, để bạn tô màu chúng vậy?
Cụ thể: Các Vùng
Nếu biết rõ tiêu chí phân Vùng như trên, tôi sẽ tạo công thức và có kết quả như cột AC (file kèm), nhờ đó bạn dùng hàm Countifs() rất dễ dàng.
- E2: H14;
- E15: H26;
- E27: H40;
- E41: H43;
- E44: H59;
- E60: H72
Lại nếu, nhóm dòng phát sinh không quá 50 dòng, thì khi xếp hạng nó sẽ tăng tổng số dòng lên từ từ, nhờ đó nó sẽ nhẹ khi số dòng lên hơn cả 1000 dòng.
Tham khảo giải pháp nhóm Vùng theo tiêu chí của bạn đề ra.
Enter, fill xuống.Mã:M2=IF(G2,COUNTIFS($AC$2:$AC50,AC2,$G$2:$G50,"<"&G2)+COUNTIFS($AC$2:$AC2,AC2,$G$2:$G2,G2),"")
Thân
Các bạn GPE giúp mình với!Mình dựa vào Tiêu chí này:
Ngoài dựa vào điều kiện của cột E để xếp hạng, còn căn cứ vào điều kiện cột H để xếp hạng cho ra kết quả cột L, với điều kiện cột H là:
1. Toàn bộ là ô rỗng thì xếp hạng bình thường (H1:H14)
2. Điều kiện nào chỉ xuất hiện 1 lần (H15:H26) và các ô còn lại là rỗng thì xếp hạng chung với các ô rỗng
3. Điều kiện nào chỉ xuất hiện 1 lần (H27:H40) và các ô còn lại có điều kiện thì xếp hạng chung với các ô có điều kiện
4. Điều kiện nào xuất hiện 2 lần trở lên (H41:H43), (H44:H59), (H60:H72) thì tách ra xếp hạng riêng.
Mình thử dùng công thức của bạn thì xếp hạng đúng ý mình, tuy nhiên có 2 chỗ cần bạn chỉnh lại:
1. Nếu trong 1 cảng có 2 giá giống nhau (E30:F31, E46:F47, E68:F69) thì phải xếp đồng hạng
2. Nếu dữ liệu trên 10000 dòng thì cột M gõ thủ công không biết khi nào xong?
Note: File đính kèm phía trên của bạn tham chiếu dữ liệu sai vị trí nên mình chỉnh lại theo đúng như file đính kèm bên dưới.