Đếm số lần đứng đầu của mỗi nước

Liên hệ QC

Vô danh Tiểu tốt

Thành viên tiêu biểu
Tham gia
22/1/14
Bài viết
434
Được thích
542
Olympiad là kỳ thì toán quốc tế rất nổi tiếng dành cho học sinh. Tham gia từ 1974, Việt Nam là nước châu Á đầu tiên có mặt ở kỳ thi này và đã đạt được nhiều thành tích sau 50 năm tham dự. Tôi thu thập được xếp hạng Olympiad trong 15 năm gần nhất của ba nước có thành tích tốp đầu Đông Nam Á là Singapore, Thái Lan và Việt Nam.

Vấn đề mà tôi muốn nhờ quý vị giải đáp là có cách nào không dùng cột phụ mà vẫn tính ra kết quả "số lần đứng đầu Asean" của ba nước này như minh họa không? Cám ơn những hồi đáp của quý vị!

OLYMPIAD R.png
 

File đính kèm

  • OLYMPIAD R.xlsx
    13.7 KB · Đọc: 26
Lần chỉnh sửa cuối:
Mã:
=SUMPRODUCT(--(MMULT(--(INDEX($C$5:$E$19;0;MATCH(B22;$C$4:$E$4;0))<=$C$5:$E$19);{1;1;1})=3))
Olympiad là kỳ thì toán quốc tế rất nổi tiếng dành cho học sinh. Tham gia từ 1974, Việt Nam là nước châu Á đầu tiên có mặt ở kỳ thi này và đã đạt được nhiều thành tích sau gần 50 năm tham dự. Tôi thu thập được xếp hạng Olympiad trong 15 năm gần nhất của ba nước có thành tích tốp đầu Đông Nam Á là Singapore, Thái Lan và Việt Nam.

Vấn đề mà tôi muốn nhờ quý vị giải đáp là có cách nào không dùng cột phụ mà vẫn tính ra kết quả "số lần đứng đầu Asean" của ba nước này như minh họa không? Cám ơn những hồi đáp của quý vị!

View attachment 301117
Bạn tham khảo nhé :
Mã:
=SUMPRODUCT(--(MMULT(--(INDEX($C$5:$E$19;0;MATCH(B22;$C$4:$E$4;0))<=$C$5:$E$19);{1;1;1})=3))
 
Dùng phiên bản 365. Phiên bản này có cách tránh cột phụ.
 
Mình dùng Office 2021, đổi dấu ";" thành dấu "," trừ đoạn trong ngoặc {1;1;1}, thấy kết quả bình thường.

Tui cũng đang dùng Office 2021, công thức này dài hơn công thức trên:

=LET(a,INDEX($C$5:$E$19,0,MATCH(B22,$C$4:$E$4,0)),SUM(($C$5:$C$19>=a)*($D$5:$D$19>=a)*($E$5:$E$19>=a)))
 
Tui cũng đang dùng Office 2021, công thức này dài hơn công thức trên:

=LET(a,INDEX($C$5:$E$19,0,MATCH(B22,$C$4:$E$4,0)),SUM(($C$5:$C$19>=a)*($D$5:$D$19>=a)*($E$5:$E$19>=a)))
Với Excel 2021, em nghĩ là nên dùng 1 công thức cho ra mảng động luôn thì hay hơn chứ anh nhỉ?
Mã:
=LET(a;BYROW(C5:E19;LAMBDA(x;FILTER(C4:E4;x=MIN(x))));MAP(B22:B24;LAMBDA(x;ROWS(FILTER(a;a=x)))))

Công thức trên là em dùng excel trên điện thoại. Không biết excel 2021 có dùng được không?
 
Tôi chưa xem thử các công thức.
Nhưng trước mắt là giải pháp dùng cột phụ của thớt sai. Nó không tính đến trường hợp đồng hạng.
 
Công thức bài #3 và #8 ra đúng kết quả. Công thức bài #11 bị #Calc! khi có đồng hạng.
 
Công thức bài #3 và #8 ra đúng kết quả. Công thức bài #11 bị #Calc! khi có đồng hạng.
Khi có đồng hạng, cái mảng của hàm Map không phải mảng 1 chiều nữa (không biết em dùng từ có đúng không), nên excel báo lỗi #calc.
Cách sửa: em thêm hàm concat để nối mảng, cho nó thành 1 chiều.
Mã:
=LET(a;BYROW(C5:E19;LAMBDA(x;CONCAT(FILTER(C4:E4;x=MIN(x)))));MAP(B22:B24;LAMBDA(x;COUNT(FIND(x;a)))))
 
Bạn tham khảo nhé :
Mã:
=SUMPRODUCT(--(MMULT(--(INDEX($C$5:$E$19;0;MATCH(B22;$C$4:$E$4;0))<=$C$5:$E$19);{1;1;1})=3))
Không hiểu sao @LmoovoenX có thể nghĩ ra công thức này :D
Nhân 2 ma trận rồi tìm hàng nào cả ba cột = TRUE ~ 3, rồi Sum; Nói chung công thức cả excel cả toán, quá khủng.
Bài đã được tự động gộp:

Tui cũng đang dùng Office 2021, công thức này dài hơn công thức trên:

=LET(a,INDEX($C$5:$E$19,0,MATCH(B22,$C$4:$E$4,0)),SUM(($C$5:$C$19>=a)*($D$5:$D$19>=a)*($E$5:$E$19>=a)))
Chỗ >=a nhờ @Phuocam giải thích thêm, chỗ này mình không hiểu và công thức cũng không cho ra kết quả ?
1716865825194.png
 
Lần chỉnh sửa cuối:
Nếu là Excel 365 thì có nhiều cách giải quyết, đây là một trong các cách:
Mã:
=MAP(B22:B24;LAMBDA(x;SUM(BYROW(C5:E19;LAMBDA(r;MIN(1-(LOOKUP(x;C4:E4;r)>r)))))))
Các phiên bản cũ hơn có thể thử công thức này:
Mã:
=SUM((COUNTIF(OFFSET(C$4:E$4;ROW($1:$15););"<"&INDEX(C$5:E$19;;MATCH(B22;C$4:E$4;)))=0)*1)
 
Web KT
Back
Top Bottom