Thử:Mình đang dùng hàm index và match để tìm tên lỗi. nhưng khi giá trị ở cột tỷ lệ giống nhau thì toàn trả lại kết quả đầu tiên. mong ae giúp giải bài này để kết quả trả lại không giống nhau. trân trọng cám ơn
K23=IFERROR(OFFSET($C$4,0.1/ROUND(MOD(AGGREGATE(14,6,ROUND(L$5:L$19,4)*10^8+0.1/$B$5:$B$19,ROW($A1)),1),4),),"")
Thử:
Enter, fill xuống. Rồi copy cả cột đó cho các cột tương thích khác phía sau.Mã:K23=IFERROR(OFFSET($C$4,0.1/ROUND(MOD(AGGREGATE(14,6,ROUND(L$5:L$19,4)*10^8+0.1/$B$5:$B$19,ROW($A1)),1),4),),"")
Xem file kèm.
hihi ^o^
Cũng giống như hàm LARGE() bạn đã dùng, tôi cũng làm tương tự như bạn: truy lục các số đã sắp xếp từ lớn đến nhỏ bằng hàm Aggregate(14,6,....,"vị trí") (bạn có thể tham khảo hàm này tại: https://support.office.com/vi-vn/ar...f17-92b6-e19993fa26df?ui=vi-VN&rs=vi-VN&ad=VN)Cám ơn anh, nhưng a có thể giải thích cho e về câu lệnh đó dc không ạ
Dùng thử công thức này, xem có dễ hiểu hơn chút nào không?nhưng khi giá trị ở cột tỷ lệ giống nhau thì toàn trả lại kết quả đầu tiên.
=IF(L23="-","-",INDEX($C:$C,AGGREGATE(15,6,ROW($L$5:$L$19)/($L$5:$L$19=L23),COUNTIF($L$23:L23,L23))))
E cám ơn ạ ^o^Cũng giống như hàm LARGE() bạn đã dùng, tôi cũng làm tương tự như bạn: truy lục các số đã sắp xếp từ lớn đến nhỏ bằng hàm Aggregate(14,6,....,"vị trí") (bạn có thể tham khảo hàm này tại: https://support.office.com/vi-vn/article/aggregate-hàm-aggregate-43b9278e-6aa7-4f17-92b6-e19993fa26df?ui=vi-VN&rs=vi-VN&ad=VN)
Có khác một chút là lấy: Các số tỷ lệ (cột L nhân với 10^8) + số thứ tự dòng (do lấy 0.1/stt nên nếu có phát sinh cùng tỷ lệ thì dòng phát sinh trước sẽ có giá trị lớn hơn dòng phát sinh dưới).
Rồi dùng MOD(....,1) để lấy số lẻ, tức là lấy 0.1/stt ở trên.
Sau cùng dùng 0.1/MOD(...,1) đó để trả về số dòng cần lấy cho OFFSET(C4, 'dòng cần lấy',...)
Các hàm ROUND() dùng để làm tròn số tương thích với các phép chia tỷ lệ.
Chúc bạn học tập vui với anh em GPE.
hihi ^o^
Dùng thử công thức này, xem có dễ hiểu hơn chút nào không?
Mã:=IF(L23="-","-",INDEX($C:$C,AGGREGATE(15,6,ROW($L$5:$L$19)/($L$5:$L$19=L23),COUNTIF($L$23:L23,L23))))
Hầy dà! mấy ông "bạn hiền" của tôi chăm "làm", mà "biếng" giải thích lắm, gọi chung là "làm - biếng" khà khà khà , để tôi xử luôn cho bạn vậy.E cám ơn ạ ^o^ Nếu được a giải thích cho e dc ko ạ
Hầy dà! mấy ông "bạn hiền" của tôi chăm "làm", mà "biếng" giải thích lắm, gọi chung là "làm - biếng" khà khà khà , để tôi xử luôn cho bạn vậy.
Công thức =IF(L23="-","-",INDEX($C:$C,AGGREGATE(15,6,ROW($L$5:$L$19)/($L$5:$L$19=L23),COUNTIF($L$23:L23,L23))))
Cũng sử dụng hàm Aggregate() nhưng dùng đối số 15 tức tìm trị nhỏ tương tự như hàm Small().
Chúc bạn học tập vui với anh em GPE.
- Đoạn biểu thức: ROW($L$5:$L$19)/($L$5:$L$19=L23) gồm giá trị dòng 5 đến 19, chỉ lọc theo điều kiện tìm giá trị dòng nào thỏa L5:L19=L23 hay L5:L19=23.35%, bạn thấy chỉ có dòng số 5 (L5) là thỏa TRUE (hay 1), các giá trị khác là FALSE (hay 0). Cho nên đoạn biểu thức này cho ra 1 mảng là {5;6;7;8;9;10;11;12;13;14;15;16;17;18;19}/{1;0;0;0;0;0;0;0;0;0;0;0;0;0;0} hay {5;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0;#DIV!0}
- COUNTIF($L$23:L23,L23) đếm xem từ L23 đến L23 có bao nhiêu giá trị bằng L23, kết quả là 1. Số 1 này cung cấp cho hàm Small(...,1) tức tìm giá trị nhỏ nhất trong mảng vừa tìm trên, kết quả = 5.
- Hàm Index(C:C,5) nó sẽ tìm đến C5 lấy ra kết quả.
- Nếu tồn tại 2 giá trị giống nhau thì Mảng tạo ra trong mục '1.' sẽ trả về 2 giá trị dòng, và hàm Countif() mục 2 khi đếm thì dòng phát sinh trước là 1, phát sinh sau là 2, tương ứng từng giá trị 1 & 2 đó là 2 số dòng đã cho trong Mảng mục '1.'
hihi ^o^
Cú pháp của Aggregate(): AGGREGATE('đối số Hàm tương ứng', 'tùy chọn giá trị phớt lờ', 'Mảng', 'đối số phụ cho 1 vài hàm quy định')Em cám ơn mọi người đã giải hộ e ạ, nhưng hàm AGGREGATE khó hiểu quá ạ. mọi ng có cách nào giải thích hộ e dc ko ạ
Em cám ơn ạ