Bagaimana cara membandingkan dua lembar kerja Excel?

8

Saya ingin membandingkan dua spreadsheet Excel

Keduanya memiliki kolom yang sama, dalam urutan yang sama, tetapi tidak baris yang sama.

Saya memiliki spreadsheet dengan 1.000 baris dan 50 kolom termasuk ID unik untuk setiap baris dan data pribadi (alamat, nomor telepon, dll.).

Saya ingin membandingkannya dengan basis yang sama yang diekstraksi satu tahun yang lalu.

Tujuan saya adalah mengetahui semua perubahan (misalnya, seseorang yang mengubah alamatnya).

Saya mencoba dengan spreadsheet (seperti yang dijelaskan di sini: Bandingkan dua file excel ) tetapi tidak berfungsi karena dalam file "baru" saya memiliki baris baru, dan saya memiliki beberapa baris dalam file lama yang tidak ada dalam file baru.

Spreadsheet dibandingkan dengan nomor baris Excel. Apakah mungkin membandingkan dengan kolom pertama (ID Unik)?

Berikut adalah contoh yang sangat sederhana: https://filebin.net/g4w98251y9mfwug6

Ada dua lembar yang mewakili dua lembar bentang saya.

Seperti yang Anda lihat keduanya memiliki kolom yang sama tetapi:

  • Ada baris yang ada di kedua lembar tanpa perubahan (semua baris sama)
  • Ada baris yang ada di kedua lembar tetapi ada perubahan (oranye pada contoh saya)
  • Ada baris yang hanya ada di lembar Desember (saya tidak perlu mengidentifikasi baris ini)
  • Ada baris yang hanya ada di lembar Januari (oranye pada contoh saya)

Warna oranye persis seperti yang saya inginkan, tetapi dalam contoh ini saya dapat melakukannya secara manual: membandingkan bulan Desember dan Januari. Dalam spreadsheet nyata saya tidak bisa melakukannya secara manual karena ada terlalu banyak perubahan, data, garis, kolom, dll. Dan saya akan melakukan ini setiap bulan.

Hanya ada satu kolom yang tidak pernah bisa berubah: kolom A.

CILUEA
sumber
FYI, orang tidak suka mengunduh file, terutama ketika diposting oleh pengguna yang tidak dikenal. Saya tidak mengatakan bahwa Anda tidak harus mengunggah file dan memposting tautan ke mereka, tetapi cobalah untuk membuat pertanyaan Anda berdiri sendiri - itu harus dimungkinkan untuk memahaminya tanpa melihat file. Saya benar-benar percaya bahwa pertanyaan Anda baik-baik saja; Saya bisa menjawabnya tanpa melihat file. Tapi, tentu saja, pertanyaan (terutama pertanyaan Excel) lebih jelas dengan data sampel. … (Lanjutan)
Scott
1
(Lanjutkan) ... Kami lebih suka Anda memposting representasi tekstual dari data Anda, seperti yang dilakukan di sini dan di sini ; gunakan Format Teks sebagai situs Tabel atau situs Plain Text Tables Generator jika Anda mau. Saya menyarankan bahwa data yang saya gunakan dalam jawaban saya adalah jumlah yang tepat: satu baris di masing-masing dari empat kategori yang Anda identifikasi dalam pertanyaan.
Scott
Ada alat Excel Bandingkan yang bagus di luar sana. Itu dapat membandingkan 2 file excel dan keluar perbedaan. Anda juga dapat mencoba Araxis Merge, meskipun tidak gratis.
Kromster

Jawaban:

4

Lebih nyaman jika spreadsheet Anda menggunakan 50 kolom, karena itu berarti kolom # 51, # 52, ..., tersedia. Masalah Anda cukup mudah diselesaikan dengan menggunakan "kolom pembantu", yang dapat kita masukkan ke dalam Kolom  AZ(yaitu kolom # 52). Saya akan berasumsi bahwa baris 1 pada masing-masing lembar Anda berisi header (yang kata-kataID , Name, Address, dll) sehingga Anda tidak perlu membandingkan mereka (karena kolom Anda berada di urutan yang sama di kedua lembar). Saya juga akan menganggap bahwa ID(pengidentifikasi unik) di Kolom  A. (Jika tidak, jawabannya menjadi sedikit sedikit lebih rumit, tapi masih cukup mudah.) Dalam sel  AZ2(kolom yang tersedia, pada baris pertama digunakan untuk data), masukkan

=B2&C2&D2&…&X2&Y2&Z2&AA2&AB2&AC3&…&AX2

daftar semua sel dari  B2sampai  AX2&adalah operator penggabungan teks, jadi jika B2berisi Andydan C2berisi New York, maka B2&C2akan dievaluasi menjadi AndyNew York. Demikian pula, rumus di atas akan menyatukan semua data untuk satu baris (tidak termasuk ID), memberikan hasil yang mungkin terlihat seperti ini:

AndyNew York1342 Wall StreetInvestment BankerElizabeth2 gelar sarjanaUCUCA…

Rumusnya panjang dan rumit untuk diketik, tetapi Anda hanya perlu melakukannya sekali (tetapi lihat catatan di bawah sebelum Anda benar-benar melakukannya). Saya menunjukkannya melalui AX2karena Kolom  AXadalah kolom # 50. Secara alami, rumus harus mencakup setiap kolom data selain ID. Lebih khusus lagi, harus mencakup setiap kolom data yang ingin Anda bandingkan. Jika Anda memiliki kolom untuk usia orang tersebut, maka itu akan (secara otomatis?) Berbeda untuk semua orang, setiap tahun, dan Anda tidak ingin itu dilaporkan. Dan tentu saja kolom pembantu, yang berisi rumus gabungan, harus berada di sebelah kanan kolom data terakhir.

Sekarang pilih sel  AZ2, dan seret / isi melalui 1000 baris. Dan lakukan ini di kedua lembar kerja.

Akhirnya, pada lembar di mana Anda ingin perubahan disorot (saya kira, dari apa yang Anda katakan, bahwa ini adalah lembar yang lebih baru), pilih semua sel yang ingin Anda sorot. Saya tidak tahu apakah ini hanya Kolom  A, atau hanya Kolom  B, atau seluruh baris (yaitu, Amelalui  AX). Pilih sel-sel ini pada baris 2 hingga 1000 (atau di mana pun data Anda akhirnya akan mencapai), dan masuk ke "Pemformatan Bersyarat" → "Aturan Baru ...", pilih "Gunakan rumus untuk menentukan sel mana yang akan diformat", dan masukkan

=IFERROR(VLOOKUP($A2,'December 2017'!$A$2:$AZ$1000,52,FALSE), "") <> $AZ2

ke dalam "Format nilai di mana rumus ini kotak benar". Ini mengambil IDnilai dari baris saat ini dari lembar saat ini ("Januari 2018") (dalam sel  $A2), mencarinya di Kolom  Alembar sebelumnya ("Desember 2017"), mendapatkan nilai data gabungan dari baris itu dan membandingkannya ke nilai data gabungan pada baris ini. (Tentu saja AZadalah kolom helper, 52adalah nomor kolom dari kolom helper, dan 1000merupakan baris terakhir pada lembar “Desember 2017” yang berisi data - atau agak lebih tinggi; misalnya, Anda dapat memasukkan 1200daripada mengkhawatirkan tentang ketepatan.) Kemudian klik "Format" dan tentukan pemformatan bersyarat yang Anda inginkan (misalnya, isi oranye).

Saya melakukan contoh dengan hanya beberapa baris dan hanya beberapa kolom data, dengan kolom pembantu di Kolom  H:

lembar bulan / tahun sebelumnya (Desember 2017)

lembar bulan / tahun saat ini (Januari 2018), dengan perubahan yang disorot dengan warna oranye

Perhatikan bahwa baris Andy berwarna oranye, karena ia pindah dari New York ke Los Angeles, dan baris Debra berwarna oranye, karena dia adalah entri baru.

Catatan:   Jika satu baris mungkin memiliki nilai seperti thedan reactdalam dua kolom berturut-turut, dan ini bisa berubah pada tahun berikutnya menjadi theredan act, ini tidak akan dilaporkan sebagai perbedaan, karena kami hanya membandingkan nilai gabungan, dan bahwa ( thereact) adalah sama di kedua lembar. Jika Anda khawatir tentang hal ini, pilih karakter yang tidak mungkin ada dalam data Anda (misalnya, |), dan masukkan di antara bidang. Jadi kolom pembantu Anda akan berisi

=B2&"|"&C2&"|"&D2&"|"&…&"|"&X2&"|"&Y2&"|"&Z2&"|"&AA2&"|"&AB2&"|"&AC3&"|"&…&"|"&AX2

menghasilkan data yang mungkin terlihat seperti ini:

Andy | New York | 1342 Wall Street | Bankir Investasi | Elizabeth | 2 | kucing | gelar sarjana | UCLA |…

dan perubahan akan dilaporkan, karena the|react ≠  there|act. Anda mungkin harus khawatir tentang ini, tetapi, berdasarkan apa kolom Anda sebenarnya, Anda mungkin memiliki alasan untuk yakin bahwa ini tidak akan menjadi masalah.

Setelah ini berfungsi, Anda bisa menyembunyikan kolom pembantu.

Scott
sumber
1

Buka tab Lihat dan klik Jendela Baru. Pergi ke Jendela baru dan klik berdampingan. Anda dapat menyinkronkan gulir dengan mengklik Gulir Sinkron. Periksa gambar terlampir: Lembar Excel berdampingan

Scrolling Synchronous memberi Anda keuntungan dari scrolling worksheet yang berbeda secara bersamaan. Beralih tombol akan memungkinkan Anda untuk melihat keduanya bersama dan gulir hanya satu lembar kerja.

Cetza Nido
sumber
Saya memiliki lebih dari 1.000 baris di setiap spreadsheet ... 50 kolom .. beberapa data sangat sulit untuk dibandingkan dengan melihat (data Bank, nomor telepon, tanggal ...) Terlalu lama untuk melanjutkan seperti itu dan ada risiko kesalahan / Kelalaian Saya harus melakukan ini setiap bulan .. Tidak ada solusi yang lebih cepat? :(
CILUEA
Dalam tampilan yang sama, Anda bisa menerapkan filter ke kolom. Tambahkan rumus pencarian di salah satu lembar kerja.
Cetza Nido
Saya tidak ingin menerapkan filter ke kolom ... Saya memiliki dua lembar kerja (satu baris = satu karyawan) dan saya ingin menyoroti data yang diubah (alamat, telepon ..) untuk setiap karyawan, di antara lembar kerja yang lama (terakhir bulan) dan spreadsheet baru (bulan ini) saya tidak bisa melakukannya secara manual setiap bulan .. Ini lebih dari 1.000 baris di setiap spreadsheet dan 50 kolom
CILUEA
Anda dapat menggunakan rumus pencarian ATAU indeks + pertandingan bersama dengan pemformatan bersyarat. Apakah mungkin membagikan lembar Anda dengan beberapa data sampel?
Cetza Nido
Saya telah mengedit posting saya dengan contoh dan lebih banyak penjelasan..Terima kasih!
CILUEA
1

Ok jadi kamu bisa melakukan satu dari dua hal.

1.- Solusi OOTB adalah membuka "Data" -> "Alat Data" -> "Hapus (Ini adalah terjemahan langsung dari bahasa Spanyol) Duplikat". Dengan cara ini Anda harus menambahkan kedua tabel, dan Anda akan berakhir hanya dengan data yang telah diubah dan hanya unik. Jadi untuk menyaring penggunaan CountIfpada uniqueids Anda, batalkan pilihan yang telah dihitung sebagai 1. Pesan dengan uniqueId dan Anda akan melihat dengan jelas apa yang telah diubah.

2.-Gunakan rumus ini

IF(Index("rangetoreturn";Match("CellofUniqueID";"Rangeofuniqueidtolookinto";0))<>"OneOftheCellthatcontainsthesameasRangeToReturn";"Info Has Changed";"InfoHasNotChanged")

Formula ini bisa digeser ke kanan dan ke bawah. Jadi Anda akan mendapatkan tabel dengan kondisi if, dengan jumlah garis yang sama dengan tabel "CellofUniqueID". Posisi "Info telah berubah", akan memberi tahu Anda sel apa di tabel lain yang telah mengubah kontennya. Jadi gunakan rumus ini di lembar baru dan buat tabel baru. Kemudian lihat filter dan hapus pilihan "InfoHasNotChanged" (atau kata apa pun yang ingin Anda gunakan).

"rangetoreturn" dan "Rangeofuniqueidtolookinto" berasal dari satu tabel (atau lembar), dan "CellofUniqueID" dari tabel lain.

Bersulang

dmb
sumber
Terima kasih! Solusi pertama bisa menjadi yang paling mudah tetapi tidak berhasil: (atau mungkin saya tidak mengerti dengan baik?) Pilihan "hapus duplikat" akan menghapus beberapa baris, dan saya ingin menjaga semua baris di kedua lembar Selain itu, saya hanya memiliki satu kolom pada lembar dengan data unik, Semua kolom lainnya memiliki banyak baris dengan data yang sama di dalamnya (misalnya, dua orang dengan tanggal lahir yang sama, atau usia yang sama ..)
CILUEA
Opsi 2: apa itu rangetoreturn / Rangeofuniqueididalamtok / OneDariCellyangtelahmenghadapisthesamesebagaiRangeToReturn?
CILUEA
@ CILUEA untuk opsi 2, "rangeofreturn" itulah kisaran informasi yang ingin Anda bawa kembali. "Rangeofuniqueidtolookinto" yang secara harfiah adalah rentang unikid di mana Anda akan mencari id unik Anda. "OneOftheCellthatcontainsthesameasRangeToReturn" ini adalah informasi yang Anda akan membandingkan dengan yang membawa Anda kembali, jadi jika berbeda itu akan memberitahu Anda. Sayangnya tidak ada jawaban yang nyaman kecuali Anda tahu sedikit tentang VBA, yang sepertinya tidak.
dmb
@ CILUEA untuk opsi 1, Anda harus membuat tabel baru dari kedua tabel. Kemudian hapus duplikat. Kemudian Anda juga dapat menggunakan CountIfdan memfilter dengan 2 arus, ketika Anda memiliki 1 arus berarti informasi tidak berubah. Terakhir, pesan dengan id unik Anda. Juga melempar bendera di kolom kolom baru, sehingga Anda tahu dari tabel mana informasi Anda berasal. Sekarang Anda dapat dengan jelas melihat perbedaannya
dmb
@Scott "Out of the Box" ... Membuat kesalahan di sana seharusnya OOTB, maaf bahasa Inggris bukan bahasa pertama saya.
dmb