Mari kita asumsikan saya memiliki beberapa data di Excel (dan bukan dalam database nyata). Dalam satu lembar, saya memiliki data, di mana satu kolom berfungsi sebagai ID, dan saya telah memastikan bahwa nilai-nilai dalam kolom ini unik. Di lembar lain, saya juga memiliki beberapa data, sekali lagi dengan satu kolom yang dapat diambil sebagai ID, dan juga unik. Jika baris N di Lembar 1 memiliki beberapa nilai, dan baris M di Lembar 2 memiliki nilai yang sama, saya yakin baris N dan baris M menggambarkan objek dunia nyata yang sama.
Apa yang saya tanyakan: bagaimana saya bisa mendapatkan yang setara dengan gabungan luar penuh tanpa menulis makro? Rumus dan semua fungsi yang dapat diakses melalui pita OK.
Contoh "data putar" kecil:
Lembar 1:
Dostoyevski Russia
Pushkin Russia
Shelley England
Flaubert France
Hugo France
Eichendorff Germany
Byron England
Zola France
Lembar 2:
Shelley Percy Bysshe
Eichendorff Josef Freiherr Von
Flaubert Gustave
Byron Lord
Keller Gottfried
Dostoyevski Fyodor
Zola Emile
Balzac Honoré de
Output yang diinginkan (pengurutan tidak penting):
Dostoyevski Russia Fyodor
Pushkin Russia
Shelley England Percy Bysshe
Flaubert France Gustave
Hugo France
Eichendorff Germany Josef Freiherr von
Byron England Lord
Zola France Emile
Keller Gottfried
Balzac Honoré de
Untuk semua orang yang ngeri dengan skenario ini: Saya tahu bahwa ini adalah Cara yang Salah Untuk Melakukannya. Jika saya punya pilihan, saya tidak akan menggunakan Excel untuk ini. Namun, ada cukup situasi di luar sana di mana solusi pragmatis diperlukan, stat, dan solusi yang lebih baik (dari sudut pandang TI) tidak dapat diterapkan.
sumber
Jawaban:
Pendekatan mudah - operasi Excel standar
Pertama, salin / tempel kedua kolom kunci dari kedua tabel ke dalam satu lembar, baru sebagai satu kolom.
Gunakan "Hapus Duplikat" untuk mendapatkan daftar tunggal dari semua kunci unik Anda.
Lalu, tambahkan dua kolom (dalam hal ini), satu untuk setiap kolom data Anda di setiap tabel. Saya sarankan Anda menggunakan format sebagai opsi tabel juga karena itu membuat formula Anda terlihat jauh lebih bagus. Menggunakan vlookup, gunakan rumus berikut:
Di mana
Sheet4!A:B
mewakili apa pun tabel tabel sumber data untuk setiap nilai masing-masing. IFERROR mencegah hasil jelek # N / A yang muncul ketika vlookup tidak berhasil dan dalam kasus ini mengembalikan sel kosong.Ini memberi Anda tabel hasil Anda.
Sheet3:
Sheet4:
Data hasil:
Rumus hasil ( Ctrl+ ~akan beralih ini):
Dibangun dalam SQL Query
Anda juga dapat melakukan ini dengan kueri SQL bawaan. Ini ... sangat tidak ramah pengguna, tapi mungkin akan menjadi kasus penggunaan yang lebih baik. Ini kemungkinan akan mengharuskan Anda untuk memformat data "sumber" Anda sebagai tabel.
Bagian "buat gabungan pengurangan lalu tambahkan sebagai kesatuan" lebih rumit ..
Kembali ke gabung luar pertama yang Anda buat. Secara manual mengedit SQL dan
Union
ke bawahBukan untuk orang yang lemah hati. Tetapi jika Anda ingin kesempatan besar untuk melihat beberapa bagian Office yang tidak-diperbarui-selama-Anda-mungkin-sudah-hidup-lagi itu adalah peluang besar.
sumber
Sebagai solusi alternatif, bolehkah saya menyarankan Power Query ? Ini adalah add-in Excel gratis dari Microsoft untuk melakukan hal-hal semacam ini pada dasarnya. Fungsinya sebenarnya akan langsung dimasukkan ke dalam Excel 2016 juga, jadi futureproofed.
Bagaimanapun, dengan Power Query, langkah-langkahnya cukup sederhana:
Hal yang menyenangkan tentang ini adalah setelah Anda mengatur ini, jika Anda membuat perubahan pada tabel data dasar Anda, Anda cukup menekan Data> Refresh All dan lembar hasil Power Query Anda akan diperbarui juga.
sumber
Cara cepat untuk mensimulasikan semi (gabungan luar) adalah dengan mengambil daftar kedua Anda dan menempelkannya langsung di bawah daftar kepalan tangan Anda, yaitu sehingga (kunci utama) Anda semua berada di kolom (primer) yang sama. Kemudian Urutkan kolom utama itu, Anda akan berakhir dengan daftar yang disisipkan kemudian melakukan persamaan IF yang ditransformasikan (superuser mengacaukan tampilan tata letak tabel ..):
listA listB
sam blue tim 32874 tim red mary 5710 chris green gustav 047 fred blue
mary black
copy / paste / sortir, hasilnya terlihat seperti ini: AB chris green fred blue gustav 047 mary 5710 mary hitam sam blue tim 32874 tim red
lalu rumus untuk sel c1: (c1) = jika (A1 = A2, B2)
hasilnya terlihat seperti ini:
ABC chris hijau FALSE fred blue FALSE gustav 047 FALSE mary 5710 hitam mary hitam FALSE sam blue FALSE tim 32874 tim merah FALSE merah
Sortir C untuk menghilangkan kesalahan, dll. Itu adalah versi dasar dari ide, cukup rentangkan jika ada lebih banyak data. -wag770310
sumber