Ini sepertinya Tabel Pivot sederhana untuk dipelajari. Saya ingin menghitung nilai unik untuk nilai tertentu yang saya kelompokkan.
Misalnya, saya punya ini:
ABC 123
ABC 123
ABC 123
DEF 456
DEF 567
DEF 456
DEF 456
Yang saya inginkan adalah tabel pivot yang menunjukkan ini kepada saya:
ABC 1
DEF 2
Tabel pivot sederhana yang saya buat hanya memberi saya ini (hitungan berapa banyak baris):
ABC 3
DEF 4
Tapi saya ingin jumlah nilai uniknya.
Apa yang sebenarnya saya coba lakukan adalah mencari tahu nilai mana di kolom pertama yang tidak memiliki nilai yang sama di kolom kedua untuk semua baris. Dengan kata lain, "ABC" adalah "baik", "DEF" adalah "buruk"
Saya yakin ada cara yang lebih mudah untuk melakukannya tetapi saya pikir saya akan mencoba tabel pivot ...
excel
excel-formula
pivot-table
pengguna1586422
sumber
sumber
Jawaban:
Sisipkan kolom ke-3 dan di sel
C2
tempelkan rumus inidan salin. Sekarang buat poros Anda berdasarkan kolom ke-1 dan ke-3. Lihat snapshot
sumber
=IF(SUM((A$2:A2=A2)*(B$2:B2=B2)) > 1, 0, 1)
(tekan Ctrl-Shift-Enter saat memasukkan rumus sehingga rumus tersebut berlaku{}
di sekitarnya).UPDATE: Anda dapat melakukan ini sekarang secara otomatis dengan Excel 2013. Saya telah membuat ini sebagai jawaban baru karena jawaban saya sebelumnya sebenarnya memecahkan masalah yang sedikit berbeda.
Jika Anda memiliki versi tersebut, pilih data Anda untuk membuat tabel pivot, dan saat Anda membuat tabel, pastikan kotak centang 'Tambahkan data ini ke Model Data' dicentang (lihat di bawah).
Kemudian, saat tabel pivot Anda terbuka, buat baris, kolom, dan nilai Anda secara normal. Kemudian klik bidang tempat Anda ingin menghitung jumlah berbeda dan edit Pengaturan Nilai Bidang:
Terakhir, gulir ke bawah ke opsi terakhir dan pilih 'Hitungan Berbeda'.
Ini harus memperbarui nilai tabel pivot Anda untuk menampilkan data yang Anda cari.
sumber
Saya ingin memberikan opsi tambahan ke dalam campuran yang tidak memerlukan rumus tetapi mungkin berguna jika Anda perlu menghitung nilai unik dalam kumpulan di dua kolom berbeda. Menggunakan contoh asli, saya tidak memiliki:
dan ingin itu muncul sebagai:
Tapi sesuatu yang lebih seperti:
dan ingin itu muncul sebagai:
Saya menemukan cara terbaik untuk memasukkan data saya ke dalam format ini dan kemudian dapat memanipulasinya lebih lanjut adalah dengan menggunakan yang berikut ini:
Setelah Anda memilih 'Running total in', lalu pilih tajuk untuk kumpulan data sekunder (dalam hal ini adalah tajuk atau judul kolom dari kumpulan data yang mencakup 123, 456 dan 567). Ini akan memberi Anda nilai maksimal dengan jumlah total item dalam kumpulan itu, dalam kumpulan data utama Anda.
Saya kemudian menyalin data ini, menempelkannya sebagai nilai, lalu meletakkannya di tabel pivot lain untuk memanipulasinya dengan lebih mudah.
FYI, saya memiliki sekitar seperempat juta baris data jadi ini bekerja jauh lebih baik daripada beberapa pendekatan rumus, terutama yang mencoba membandingkan dua kolom / kumpulan data karena terus merusak aplikasi.
sumber
Saya menemukan pendekatan termudah adalah dengan menggunakan
Distinct Count
opsi di bawahValue Field Settings
( klik kiri bidang diValues
panel). Opsi untukDistinct Count
ada di bagian paling bawah daftar.Berikut adalah sebelum (TOP; normal
Count
) dan sesudah (BAWAH;Distinct Count
)sumber
Lihat Item Unik Hitungan Debra Dalgleish
sumber
Tabel tidak perlu diurutkan agar rumus berikut mengembalikan 1 untuk setiap nilai unik yang ada.
dengan asumsi rentang tabel untuk data yang disajikan dalam pertanyaan adalah A1: B7 masukkan rumus berikut di Sel C1:
Salin rumus itu ke semua baris dan baris terakhir akan berisi:
Ini menghasilkan angka 1 yang dikembalikan untuk pertama kalinya sebuah rekor ditemukan dan 0 untuk semua waktu sesudahnya.
Cukup jumlahkan kolom di tabel pivot Anda
sumber
=IF(COUNTIF($B$1:$B1,B1),1,0)
- dengan cara ini, countif hanya dijalankan sekali!Pendekatan saya terhadap masalah ini sedikit berbeda dari yang saya lihat di sini, jadi saya akan berbagi.
Catatan: Saya ingin menyertakan gambar untuk membuatnya lebih mudah dipahami tetapi tidak bisa karena ini adalah posting pertama saya;)
sumber
Jawaban Siddharth luar biasa.
Namun , teknik ini dapat menemui masalah saat bekerja dengan kumpulan data yang besar (komputer saya berhenti pada 50.000 baris). Beberapa metode yang tidak terlalu intensif prosesor:
Pemeriksaan keunikan tunggal
Gunakan rumus yang melihat lebih sedikit data
Pemeriksaan keunikan ganda
Jika Anda perlu memeriksa keunikan di kolom yang berbeda, Anda tidak dapat mengandalkan dua jenis.
Sebagai gantinya,
Tambahkan rumus yang mencakup jumlah rekaman maksimum untuk setiap pengelompokan. Jika ABC mungkin memiliki 50 baris, rumusnya adalah
sumber
=A2&B2
. Kemudian tambahkan kolom D dan masukkan D2=IF(MATCH(C2, C$2:C2, 0) = ROW(C1), 1, 0)
. Isi keduanya. Meskipun ini masih mencari dari awal seluruh rentang, ia berhenti ketika menemukan yang pertama, dan alih-alih mengalikan nilai dari 50.000 baris bersama-sama, ia hanya harus menemukan nilainya - sehingga performanya akan jauh lebih baik.Excel 2013 dapat melakukan Hitung berbeda di pivot. Jika tidak ada akses ke 2013, dan jumlah datanya lebih kecil, saya membuat dua salinan data mentah, dan di salinan b, pilih kedua kolom dan hapus duplikat. Kemudian buat poros dan hitung kolom Anda b.
sumber
Anda dapat menggunakan COUNTIFS untuk beberapa kriteria,
= 1 / COUNTIFS (A: A, A2, B: B, B2) lalu seret ke bawah. Anda dapat memasukkan kriteria sebanyak yang Anda inginkan, tetapi prosesnya cenderung memakan banyak waktu.
sumber
Langkah 1. Tambahkan kolom
Langkah 2. Gunakan rumus =
IF(COUNTIF(C2:$C$2410,C2)>1,0,1)
dalam catatan pertamaLangkah 3. Seret ke semua catatan
Langkah 4. Saring '1' di kolom dengan rumus
sumber
Anda dapat membuat kolom tambahan untuk menyimpan keunikan, maka jumlah yang di tabel pivot Anda.
Maksud saya, sel
C1
harus selalu begitu1
. SelC2
harus berisi rumus=IF(COUNTIF($A$1:$A1,$A2)*COUNTIF($B$1:$B1,$B2)>0,0,1)
. Salin rumus ini ke bawah sehingga selC3
akan berisi=IF(COUNTIF($A$1:$A2,$A3)*COUNTIF($B$1:$B2,$B3)>0,0,1)
dan seterusnya.Jika Anda memiliki sel header, Anda akan ingin memindahkan semua ini ke bawah satu baris dan
C3
rumus Anda seharusnya=IF(COUNTIF($A$2:$A2,$A3)*COUNTIF($B$2:$B2,$B3)>0,0,1)
.sumber
Jika sudah ada data yang diurutkan .. saya sarankan menggunakan rumus berikut
Ini lebih cepat karena menggunakan lebih sedikit sel untuk menghitung.
sumber
Saya biasanya mengurutkan data berdasarkan bidang yang saya butuhkan untuk melakukan penghitungan berbeda kemudian menggunakan IF (A2 = A1,0,1); Anda mendapatkan 1 di baris atas dari setiap grup ID. Sederhana dan tidak membutuhkan waktu lama untuk menghitung pada kumpulan data besar.
sumber
Anda juga dapat menggunakan untuk kolom pembantu
VLOOKUP
. Saya menguji dan terlihat sedikit lebih cepat dariCOUNTIF
.Jika Anda menggunakan header dan data dimulai dalam sel
A2
, maka di sel mana pun dalam baris gunakan rumus ini dan salin di semua sel lain di kolom yang sama:sumber
Saya menemukan cara yang lebih mudah untuk melakukan ini. Mengacu pada contoh Siddarth Rout, jika saya ingin menghitung nilai unik di kolom A:
sumber
B
. Bagaimana Anda akan menyesuaikan ini untuk bekerja dengan banyak kolom?