
Formula generik
=FILTER(data,(rng1"")*(rng2"")*(rng3""))
Ringkasan
Untuk menapis baris dengan sel kosong atau kosong, anda boleh menggunakan fungsi FILTER dengan logik boolean. Dalam contoh yang ditunjukkan, formula dalam F5 adalah:
=FILTER(B5:D15,(B5:B15"")*(C5:C15"")*(D5:D15""))
Keluaran hanya mengandungi baris dari data sumber di mana ketiga-tiga lajur mempunyai nilai.
Penjelasan
Fungsi FILTER dirancang untuk mengekstrak data yang sesuai dengan satu atau lebih kriteria. Dalam kes ini, kami ingin menerapkan kriteria yang mengharuskan ketiga-tiga lajur dalam data sumber (Nama, Kumpulan, dan Ruangan) memiliki data. Dengan kata lain, jika baris kehilangan nilai-nilai ini, kami ingin mengecualikan baris itu dari output.
Untuk melakukan ini, kami menggunakan tiga ungkapan boolean yang beroperasi pada tatasusunan. Ujian ungkapan pertama untuk nama kosong:
B5:B15"" // check names
Pengendali not () dengan rentetan kosong ("") diterjemahkan menjadi "tidak kosong". Untuk setiap sel dalam julat B5: B15, hasilnya adalah BENAR atau SALAH, di mana BENAR bermaksud "tidak kosong" dan SALAH bermaksud "kosong". Kerana terdapat 11 sel dalam julat, kami memperoleh 11 hasil dalam array seperti ini:
(TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE)
Ujian ungkapan kedua untuk kumpulan kosong:
C5:C15"" // check groups
Sekali lagi, kami memeriksa 11 sel, jadi kami mendapat 11 hasil:
(TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE)
Akhirnya, kami memeriksa nombor bilik kosong:
D5:D15"" // check groups
yang menghasilkan:
(TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE)
Apabila tatasusunan yang terhasil dari ketiga ungkapan di atas dikalikan bersama, operasi matematik membentuk nilai BENAR dan SALAH kepada 1 dan 0. Kami menggunakan pendaraban dalam kes ini, kerana ingin menegakkan logik "DAN": ekspresi1 DAN ungkapan2 DAN ungkapan3. Dengan kata lain, ketiga ungkapan mesti mengembalikan BENAR pada baris yang diberikan.
Mengikuti peraturan logik boolean, hasil akhir adalah susunan seperti ini:
(1;0;1;0;1;1;1;0;0;0;1)
Array ini dihantar terus ke fungsi FILTER sebagai argumen include. FILTER hanya merangkumi 6 baris yang sesuai dengan 1s pada output akhir.