Bagaimana cara melakukan operasi pengaturan sederhana dalam spreadsheet Google docs?

10

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:A4yang tidak muncul B1:B3?

Misalnya Sel A1:A4memiliki "A", "B", "C", "D", jika B1:B3mengandung "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:Bxbisa 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:Bxke daerah lain C1:Cxterlebih dahulu, lalu menggunakan rumus di atas tetapi menentang C1:Cx. Sekarang bahkan B1:Bxdiperluas, rumusnya masih valid.

grokus
sumber
Solusi untuk masalah yang berkembang adalah dengan menggunakan rentang bernama. Mungkin perlu beberapa usaha untuk mendapatkan filter dengan tepat.
Lance Roberts
@ Lance, saya menemukan solusi dan memperbarui posting saya lagi. Terima kasih.
grokus
1
Pertanyaan yang bagus, saya menemukannya sendiri saat mencari jawaban ini. Solusi Anda cukup baik, tapi saya pikir saya akhirnya mendapatkan apa yang Anda cari. Lihatlah jawaban saya di bawah ini.
Anthony DiSanti

Jawaban:

5

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.

Lance Roberts
sumber
1
Saya menemukan menggunakan Chrome jauh lebih baik ketika berhadapan dengan Google Documents.
grokus
Hari ini gila bagi saya, tetapi jika saya bisa mengingatnya saya akan mengambil celah ini minggu depan (jika jawabannya belum ditemukan saat itu).
Lance Roberts
tidak apa-apa, saya bisa menggunakan FILTER untuk mendapatkan hasil yang saya inginkan. Terima kasih.
grokus
@ grokus, bagus, Anda harus memposting rumus yang Anda gunakan untuk referensi pembaca di masa depan.
Lance Roberts
Saya memperbarui posting asli saya.
grokus
4
=FILTER(A:A, NOT(COUNTIF(B:B, A:A)))

COUNTIFmenghitung berapa kali setiap pemain di kolom Amuncul di kolom Bdan mengembalikan array jumlah.

NOT melemparkan angka ke nilai boolean (benar atau salah) dan kemudian mengambil kebalikannya.

FILTERmenghapus pemain yang muncul di Bdaftar respons kolom.

Kuncinya di sini adalah yang NOTmenghitung 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). 0 Falsedilemparkan ke dan semua nomor lainnya dilemparkan ke True. Jadi pemain yang telah merespons peta Truedan mereka yang belum merespons peta False. NOTlalu 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)))

Anthony DiSanti
sumber
genius 20charlimit
Fadeway
0

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 setAdan setBdapat 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 setAdi setBmana mereka keluar, dan memfilter setA dengan itu.

Perbedaannya serupa, tetapi filter setAuntuk memilih hanya anggota yang menemukan indeksnya setBtidak ditemukan.

Kredit tambahan

Bersatu dengan penghapusan duplikat hanya setA + (setB-setA) , jadi dengan yang di atas

={setA;filter(setB, iserror(MATCH(setB,setA,false)))}
marc meyer
sumber