các bác cho em hỏi có hàm nào để tìm giá trị của số bé thứ nhì ( hoặc thứ 3,4... hoặc tuỳ ý)không ạ?
VD:giả sử em có một vùng dữ liệu sau từ A1 đến A5:
4.0
5.0
6.0
7.0
8.0
vậy em phải nhập hàm nào để tìm số bé thứ nhì ( 5.0) ạ?
{=SMALL((MATCH(A1:A11,A1:A11,0)=ROW(INDIRECT("1:"&ROWS(A1:A11))))*A1:A11,SUMPRODUCT(--(MATCH(A1:A11,A1:A11,0)=ROW(INDIRECT("1:"&ROWS(A1:A11)))=FALSE))+2)}
Nếu dùng để lấy số nhỏ thứ nhì thì dùng công thức cho ngắn gọn.Giả sử vùng dữ liệu từ A1:A11, chứa các số 1;1;2;2;2;3;3;3;4;5;5
Tìm số nhỏ thứ 2 : Kết quả là số 2 (không phải số 1)
Với số 2 màu đỏ là số nhỏ thứ mà ta muốn tìm. Bấm Ctrl+shift+Enter sau khi gõ xong công thức.
=SMALL(A1:A11,COUNTIF(A1:A11,SMALL(A1:A1,1))+1)
Nếu dùng để lấy số nhỏ thứ nhì thì dùng công thức cho ngắn gọn.
Mã:=SMALL(A1:A11,COUNTIF(A1:A11,SMALL(A1:A1,1))+1)
{=MIN(IF(A1:A11>MIN(A1:A11),A1:A11,""))}
Nếu dùng để lấy số nhỏ thứ nhì thì dùng công thức cho ngắn gọn.
Mã:=SMALL(A1:A11,COUNTIF(A1:A11,SMALL(A1:A1,1))+1)
=SMALL(A1:A11;COUNTIF(A1:A11;MIN(A1:A11))+1)
Nếu không phải là số 1 thì công thức small(Rrg,1) vẫn trả về số nhỏ nhất mà.Lỡ số nhỏ nhất không phải là 1 thì sao Bác Salam, theo em tổng quát hơn tí thì sửa lại công thức của Bác như thế này:
Tuy nhiên vầy cũng chưa ổn Bác ạ, nếu số lớn thứ 3, thứ 4... thì xài hổng được.Mã:=SMALL(A1:A11;COUNTIF(A1:A11;MIN(A1:A11))+1)
Nếu không phải là số 1 thì công thức small(Rrg,1) vẫn trả về số nhỏ nhất mà.
Theo mình hiểu thì:
Small(Rg,1) = Min(Rg).
Còn về số lớn thứ 3,4 ... thì Ct này không áp dụng được mình đã ghi rõ rồi mà.
(nếu chỉ để tìm số nhỏ thứ nhì).
Cám ơn Bạn.
mArray {=IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,"")}
{=Small(mArray, n)}
{=Small(IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,""), n)}
{=Large(mArray, n)}
{=Large(IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,""), n)}
Đây là công thức trả về 1 mảng các giá trị duy nhất trong một dãy (List of unique record in an array):
Gõ công thức xong, ấn phím F9 để xem kết quả.
Do đó, để tìm số nhỏ thứ n trong dãy ta có công thức:PHP:mArray = IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,"")
Tương tự, để tìm số lớn thứ n trong dãy ta có công thức:PHP:=Small(mArray, n) =Small(IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,""), n)
PHP:= Large(mArray, n) = Large(IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,""), n)
Thì có sao đâu bạn, bạn thử xem khi thay đổi giá trị của Vùng đích thì công thức này có thay đổi giá trị hay không?Vậy công thức của Bác khi nhập lại số liệu trong dãy thì làm sao đây Bác?
Cái vụ F9 đã nói nhiều trên diễn đàn rồi mà, bấm F9 chỉ để kiểm tra xem công thức mảng đó nó trả về mảng các phần tử mang giá trị gì?Và công thức bấm F9 này em chưa hiểu lắm, Bác giải thích sơ tí giùm em với.
{=IF(MATCH(A1:A11,A1:A11,0)=ROW(A1:A11)-MIN(ROW(A1:A11))+1,A1:A11,"")}
Xem ví dụ trong bài số 3 của Hoangdanh ấy:sao các bác cứ phải viết mấy cái phức tạp trên làm gì nhỉ, em thử với công thức small(array, n) 1 phát là ra
Vậy theo bạn số lớn thứ 2 là số mấy? Có phải là 2 hay không? ---> Thế bạn dùng hàm SMALL như thế nào? Nói nghe thửGiả sử vùng dữ liệu từ A1:A11, chứa các số 1;1;2;2;2;3;3;3;4;5;5
TÌM SỐ BÉ THỨ n VÀ SỐ LỚN THỨ n
Vùng dữ liệu: 4256891
Tìm số bé thứ 2: SMALL(A16:G16,2)
Tìm số lớn thứ 2: SMALL(A20:G20,COUNTA(A20:G20)-1) (n nhớ trừ bớt 1)