mình không hiểu công thức này cho lắm {=sum(1/countif(vùngđếm, vùngđếm))} xin các cao thủ giải thích giúp mình nha
Thuật giải:
Đây là bài toán tìm số phần tử duy nhất trong mảng.
Hiểu nôm na thế này: countif(vungdem,vungdem) = vungketqua :bao gồm kết quả số lần xuất hiện của từng phần tử trong vungdem.
Giả sử có 2 chữ A trong vùng đếm => vungketqua bao giờ cũng có
2 số 2 đại diện cho chữ A
Giả sử có 3 chữ B trong vùng đếm => vungketqua bao giờ cũng có
3 số 3 đại diện cho chữ B
Lật ngược vungketqua làm mẫu số và cộng lại: sum(1/vungketqua)=sum(1/countif(vungdem,vungdem))=
1/2+1/2 +
1/3+1/3+1/3+...=1+1+...(1 chữ A + 1 chữ B +...)
Ví dụ:
Ta có mảng A1:A5 = {A;B;A;B;B} (Muốn xem phần tử thì bôi đen A1:A5, nhấn F9)
Tại B1, nhập: =COUNTIF(A1:A5,A1:A5) (tức là COUNTIF({A;B;A;B;B},{A;B;A;B;B})
Nghĩa là đếm
từng phần tử xem xuất hiện bao nhiêu lần trong mảng
Kết quả là: {2;3;2;3;3} (Dùng F9 để xem) Trong đó 2 là kết quả đếm của A và 3 của B.
Sửa ô B1 thành : sum(1/COUNTIF(A1:A5,A1:A5)), kết quả là = sum(1/2+1/3+1/2+1/3+1/3) = 2
Cái hay của công thức này là tìm ra quy luật: A xuất hiện hai lần trong mảng, thì sẽ có hai số 2 đại diện cho A trong vùng kết quả. B xuất hiện ba lần trong mảng, thì sẽ có ba số 3 đại diện cho B trong vùng kết quả. Khi dùng làm mẫu số cho 1, tổng của chúng
bao giờ cũng bằng 1; Kết cục là, dù A (hay B) có xuất hiện bao nhiêu lần trong mảng, cũng đếu được quy vế số 1, tổng cộng lại chính là số phần tử duy nhất trong mảng.