
Formula umum
(=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)^0))>=N)))
Ringkasan
Untuk menghitung baris yang berisi nilai tertentu, Anda bisa menggunakan rumus array yang didasarkan pada fungsi MMULT, TRANSPOSE, COLUMN, dan SUM. Dalam contoh yang ditunjukkan, rumus di K6 adalah:
(=SUM(--(MMULT(--((data)=2)))
di mana datanya adalah rentang bernama C5: I14.
Perhatikan ini adalah rumus array dan harus dimasukkan dengan control shift enter.
Penjelasan
Bekerja dari dalam ke luar, kriteria logis yang digunakan dalam rumus ini adalah:
(data)<70
di mana datanya adalah rentang bernama C5: I14. Ini menghasilkan hasil TRUE / FALSE untuk setiap nilai dalam data, dan negatif ganda memaksa nilai TRUE FALSE menjadi 1 dan 0 untuk menghasilkan array seperti ini:
(0,0,0,1,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,1,0,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0)
Seperti data asli, larik ini berukuran 10 baris kali 7 kolom (10 x 7) dan masuk ke fungsi MMULT sebagai larik1 . Argumen selanjutnya, array2 dibuat dengan:
TRANSPOSE(COLUMN(data)^0))
Di sini, fungsi COLUMN digunakan sebagai cara untuk menghasilkan array numerik dengan ukuran yang tepat, karena perkalian matriks membutuhkan jumlah kolom dalam array1 (7) untuk menyamai jumlah baris dalam array2 .
Fungsi COLUMN mengembalikan array 7 kolom (3,4,5,6,7,8,9). Dengan menaikkan array ini ke pangkat nol, kita berakhir dengan array 7 x 1 seperti (1,1,1,1,1,1,1), yang TRANSPOSE berubah menjadi array 1 x 7 seperti (1; 1 ; 1; 1; 1; 1; 1).
MMULT kemudian menjalankan dan mengembalikan hasil array 10 x 1 (2; 0; 0; 3; 0; 0; 0; 1; 0; 0), yang diproses dengan ekspresi logika> = 2, menghasilkan array TRUE Nilai SALAH:
(TRUE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE).
Kami sekali lagi memaksa TRUE FALSE menjadi 1 dan 0 dengan negatif ganda untuk mendapatkan array terakhir di dalam SUM:
=SUM((1;0;0;1;0;0;0;0;0;0))
Yang dengan benar mengembalikan 2, jumlah nama dengan setidaknya 2 skor di bawah 70.