Saya mengalami masalah aneh di excel yang belum pernah saya alami sebelumnya. Saya memiliki lembar excel yang saya coba tarik beberapa catatan spesifik, yang mengharuskan saya tahu duplikat. Saya menggunakan COUNTIF untuk memfilter ke duplikat saya lalu menarik berdasarkan filter lain; Namun, COUNTIF tampaknya akan menutup telepon. Saya telah menguraikan proses saya di bawah ini.
- Buat kolom dengan = COUNTIF (A: A, A2)
- Salin rumus ke bawah kolom
- Simpan lembar kerja (Hang / memakan waktu untuk selesai) atau Salin kolom dan rekatkan nilai (Hang / perlu waktu untuk selesai
Saya telah melakukan ini di Excel 2010 dan 2013 dengan hasil yang sama pada dua PC yang berbeda. Lembar kerja hanya memiliki 172000 baris di dalamnya. Rumus dieksekusi baik untuk mendapatkan nilai, tetapi hang ketika saya mencoba untuk menyimpan atau menyalin dan menempelkan nilai kolom. Tanpa kolom itu, lembar kerja berperilaku normal. Saya belum pernah mengalami ini sebelumnya.
Terima kasih sebelumnya!
sumber
Jawaban:
Mengapa tidak menerapkan filter saja alih-alih menggunakan
countif()
?Data - Sort & Filter - Advanced
untuk menempatkan filter lanjutan.List range
Criteria range
sumber
Coba yang berikut ini:
sumber
Coba gunakan rumus array, seharusnya berkinerja lebih baik.
=COUNTIF($A$1:$A$172000,A1:A172000)
sumber
Anda bisa melakukan ini dengan cara yang berbeda untuk menyelesaikan masalah Anda - Gunakan Tabel Pivot pada Kolom A. Saya berasumsi Anda memiliki header di A1 dan data meluas dari A2 ke beberapa baris variabel di luar A2.
Anda dapat mengaktifkan penghitungan otomatis. PivotTables harus di-refresh secara eksplisit. Cobalah dan lihat apakah itu berhasil untuk Anda.
sumber
Opsi lain yang mungkin Anda lihat adalah menyalin data (hanya nilai) ke buku kerja baru dan melihat apakah masalah kinerja masih ada. Mungkin buku kerja rusak entah bagaimana.
sumber
Tabel pivot dengan kolom tempat Anda mencoba duplikat.
Hitung berapa kali nilai Anda muncul.
Salin apa saja dengan hitungan> 1 ke lembar lain
Gunakan lembar ini sebagai tabel VLOOKUP, untuk menandai duplikat pada lembar asli Anda.
Salin / tempel nilai dari VLOOKUP Anda (karena rumusnya volatile, dan Anda tidak ingin Excel menghitung ulang setiap kali perubahan dilakukan).
Filter untuk duplikat.
Operasi Vlookup masih membutuhkan sedikit waktu, tetapi secara signifikan lebih cepat daripada COUNTIF.
sumber
Saya menemukan rumus countif saya = COUNTIF ($ E $ 2: $ E $ 111111, E2) berjalan sangat lambat sehingga telah melakukan yang berikut,
Putar data Anda
Masukkan baris ID yang ingin Anda hitung Masukkan nilai jumlah ID yang ingin Anda hitung
Kembali ke data Anda, masukkan kolom dan buat indeks dan cocokkan yang cocok dengan kolom id di data Anda ke kolom pivot Anda dengan id di baris.
Kemudian indeks kembali hitungan kolom id pada pivot asli Anda akan menjadi: = COUNTIF ($ E $ 2: $ E $ 111111, E2)
menggunakan indeks dan kecocokan
= INDEX (Pivot! B: B, MATCH (Data! E: E, Pivot! A: A, 0))
Ini mempercepat perhitungan secara besar-besaran
Terima kasih
sumber
Saya bertemu dengan masalah yang sama dan mencari solusi untuk utas ini. Formula saya di kolom B adalah sebagai berikut: = COUNTIF ($ A1 $: A, A2)
sehingga penghitungan untuk setiap baris baru yang disalin akan selalu dimulai dari awal dataset.
Countif membutuhkan waktu (di lembar saya + 100k baris), tetapi berhasil. Excel saya macet jika saya ingin menyalin sebagai nilai , dan saya memiliki komputer yang cepat dengan 16gig RAM.
Lalu saya baru saja menemukan solusi paling sederhana! Tambahkan kolom di sebelah kolom rumus (mis. Kolom C), dan buat rumus sederhana yang mereferensikan kolom B, seperti = B1 * 1 atau = VALUE (B1) dan salin semuanya ke bawah. Setelah itu, Anda tinggal pilih kolom rumus sederhana ini, dan Salin sebagai nilai .
Setelah nilai dalam Kolom C disalin, Anda dapat menghapus kolom rumus berat asli ATAU membuat lembar Excel baru dengan hanya nilai yang ditempelkan padanya.
sumber
Saya telah mengalami masalah yang sama dengan rumus CountIf di tabel dengan beberapa ribu baris. Dengan mengikuti langkah-langkah ini, saya dapat memotong waktu menjadi kurang dari setengah (dari ~ 96 detik menjadi kurang dari 40 detik):
Dalam kasus saya, saya menggunakan CountIf untuk mendapatkan nomor baris nilai dalam daftar (seperti SQL's row_number ()). Daftar yang saya gunakan untuk melakukan langkah-langkah memiliki nilai duplikat.
sumber