Misalkan saya memiliki beberapa nama dalam sel B1:B3
, dan daftar lengkap semua nama di A1:A4
, apakah mungkin bagi saya untuk membuat daftar nama A1:A4
yang tidak muncul B1:B3
?
Misalnya Sel A1:A4
memiliki "A", "B", "C", "D", jika B1:B3
mengandung "A", "C", "D", maka saya ingin mendapatkan "B".
Saya melihat daftar fungsi tetapi tidak tahu bagaimana melakukannya.
Pembaruan : Dengan bantuan Lance, rumus yang saya buat adalah:
FILTER(A1:A4, A1:A4<>B1, A1:A4<>B2, A1:A4<>B3)
Ini memberikan hasil yang tepat, namun saya masih memiliki masalah. Masalahnya adalah sel saya B1:Bx
bisa mengembang. Saya mengelola tim olahraga dan menggunakan formulir Google Documents untuk dikirimkan orang, mereka memilih nama mereka dari daftar pilih dan memilih tombol radio "Ya" (saya bisa bermain), atau "Tidak" (saya keluar). Yang ingin saya capai di sini adalah menampilkan di spreadsheet saya orang-orang yang belum merespons. Tujuannya adalah untuk memperbarui daftar ini secara otomatis setelah setiap pengiriman baru. Sayangnya ketika baris baru diisi dalam spreadsheet, rumusnya akan kacau. Saya tidak yakin apakah ada solusi untuk ini.
Pembaruan 2 : Saya menemukan pekerjaan. Saya menyalin sel dari B1:Bx
ke daerah lain C1:Cx
terlebih dahulu, lalu menggunakan rumus di atas tetapi menentang C1:Cx
. Sekarang bahkan B1:Bx
diperluas, rumusnya masih valid.
sumber
Jawaban:
WOW, saya akan memberi Anda solusi yang tepat, Google Documents sangat menyebalkan. Script-loop City.
Anda dapat melakukan ini dengan fungsi lembar kerja FILTER, dengan arrayCondition_1 Anda menjadi rumus fungsi yang memberikan nilai sebenarnya untuk setiap baris yang tidak ditipu. Saya dapat melihat bahwa fungsi MATCH tidak dapat digunakan.
sumber
COUNTIF
menghitung berapa kali setiap pemain di kolomA
muncul di kolomB
dan mengembalikan array jumlah.NOT
melemparkan angka ke nilai boolean (benar atau salah) dan kemudian mengambil kebalikannya.FILTER
menghapus pemain yang muncul diB
daftar respons kolom.Kuncinya di sini adalah yang
NOT
menghitung jumlah menjadi boolean. Jika seorang pemain belum merespons, mereka akan muncul 0 kali dalam daftar tanggapan. Jika mereka merespons, mereka akan muncul 1 kali atau lebih (mungkin seorang pemain mencoba mengubah jawaban mereka dengan mengirimkan survei untuk kedua kalinya). 0False
dilemparkan ke dan semua nomor lainnya dilemparkan keTrue
. Jadi pemain yang telah merespons petaTrue
dan mereka yang belum merespons petaFalse
.NOT
lalu ambil kebalikannya, memberi Anda topeng pemain yang belum merespons.Solusi ini mendukung daftar kiriman yang terus bertambah yang mungkin termasuk baris kosong atau kiriman duplikat. Untuk membatasi rentang tertentu yang dijelaskan dalam pertanyaan, gunakan:
=FILTER(A1:A4, NOT(COUNTIF(B:B,A1:A4)))
sumber
Berikut spreadsheet yang menunjukkan bagaimana hal ini dapat dilakukan dengan mudah:
Tetapkan Operasi di Google Sheets
Serikat adalah
={setA; setB}
Perbedaannya adalah
=filter(setA, iferror(MATCH(setA, setB, false)))
Persimpangan adalah
=filter(setA; MATCH(setA, setB, false))
Penjelasan
setA
dansetB
dapat dinamai rentang atau Anda dapat menggunakan notasi rentang normal. Rentang yang diberi nama membuat ini lebih jelas.Union hanyalah rentang baru yang dibuat dengan menyandingkan kedua rentang.
Persimpangan (termudah berikutnya) tergantung pada mencari indeks
setA
disetB
mana mereka keluar, dan memfilter setA dengan itu.Perbedaannya serupa, tetapi filter
setA
untuk memilih hanya anggota yang menemukan indeksnyasetB
tidak ditemukan.Kredit tambahan
Bersatu dengan penghapusan duplikat hanya setA + (setB-setA) , jadi dengan yang di atas
sumber