Note: The other languages of the website are Google-translated. Back to English
English English

Bagaimana cara memfilter tabel Pivot berdasarkan nilai sel tertentu di Excel?

Biasanya, kami memfilter data dalam Tabel Pivot dengan memilih item dalam daftar drop-down seperti yang ditunjukkan pada gambar di bawah. Sebenarnya, Anda dapat memfilter tabel pivot berdasarkan nilai dalam sel tertentu. Metode VBA dalam artikel ini akan membantu Anda memecahkan masalah.

Filter Tabel Pivot berdasarkan nilai sel tertentu dengan kode VBA


Filter Tabel Pivot berdasarkan nilai sel tertentu dengan kode VBA

Kode VBA berikut dapat membantu Anda memfilter Tabel Pivot berdasarkan nilai sel tertentu di Excel. Silakan lakukan sebagai berikut.

1. Silakan masukkan nilai yang akan Anda filter berdasarkan Tabel Pivot ke dalam sel terlebih dahulu (di sini saya memilih sel H6).

2. Buka lembar kerja berisi Tabel Pivot yang akan Anda filter berdasarkan nilai sel. Kemudian klik kanan tab lembar dan pilih Lihat Kode dari menu konteks. Lihat tangkapan layar:

3. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi jendela, salin di bawah kode VBA ke jendela Kode.

Kode VBA: Filter Tabel Pivot berdasarkan nilai sel

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6:H7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Catatan: Di dalam kode,

1) "Sheet1"Adalah nama lembar kerja.
2) "Tabel Pivot2”Adalah nama Tabel Pivot.
3) Bidang pemfilteran di tabel pivot disebut "Kategori".
4) Nilai yang ingin Anda filter dari tabel pivot ditempatkan di sel H6.
Anda dapat mengubah nilai variabel di atas sesuai kebutuhan.

4. tekan lain + Q kunci untuk menutup Microsoft Visual Basic untuk Aplikasi jendela.

Kemudian Tabel Pivot memfilter berdasarkan nilai di sel H6 seperti gambar di bawah ini yang ditunjukkan:

Anda dapat mengubah nilai sel sesuai kebutuhan Anda.

Note: Nilai yang Anda ketikkan di sel H6 harus sama persis dengan nilai di daftar tarik-turun Kategori Tabel Pivot.


Artikel terkait:


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (19)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Menggunakan kode ini (diperbarui untuk variabel saya tentu saja), ketika mengubah bidang, filter berubah sesaat ke yang benar, dan kemudian segera menghapus dirinya sendiri. Mencoba mencari tahu mengapa melakukan ini (bertanya-tanya apakah itu ada hubungannya dengan ClearAllFilters di akhir sub?)
Komentar ini diminimalkan oleh moderator di situs
Bagaimana Anda melakukannya dengan filter laporan yang memiliki hierarki?
Komentar ini diminimalkan oleh moderator di situs
Hai! Terima kasih untuk makro Anda.

Saya mencoba menggunakannya untuk lebih dari satu tabel pivot di halaman yang sama, tetapi tidak berhasil. Saya menulisnya seperti ini:

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xPTable1 Sebagai PivotTable
Redupkan xPFile1 Sebagai PivotField
Redupkan xStr1 Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("D7")) Tidak Ada Apa-apa Kemudian Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable1 = Worksheets("BUSCADOR").PivotTables("PV_ETAPA1")
Setel xPFile1 = xPTable1.PivotFields("ETAPA1")
xStr1 = Target.Teks
xPFile1.ClearAllFilters
xPFile1.CurrentPage = xStr1
Application.ScreenUpdating = Benar

Redupkan xPTable2 Sebagai PivotTable
Redupkan xPFile2 Sebagai PivotField
Redupkan xStr2 Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("G7")) Tidak Ada Lalu Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable2 = Worksheets("BUSCADOR").PivotTables("PV_ETAPA2")
Setel xPFile2 = xPTable2.PivotFields("ETAPA2")
xStr2 = Target.Teks
xPFile2.ClearAllFilters
xPFile2.CurrentPage = xStr2
Application.ScreenUpdating = Benar

End Sub

Mungkin Anda bisa membantu saya!

Thanks in advance!
Komentar ini diminimalkan oleh moderator di situs
Hi


terima kasih untuk Macronya


Saya Mencoba hal yang sama tetapi tidak dapat membuatnya berfungsi di 2 tabel. mereka berdua melihat sel yang sama hanya 2 tabel pivot yang berbeda


Terima kasih
Komentar ini diminimalkan oleh moderator di situs
Anda harus mengubah nama Tabel Pivot. Setiap tabel pivot memiliki nama yang berbeda. untuk mendapatkannya, klik kanan pada pivot dan pilih pengaturan tabel pivot, namanya akan berada di atas
Komentar ini diminimalkan oleh moderator di situs
Halo entah kenapa makro ini setelah masuk ke halaman visual basic tidak muncul sama sekali. Saya tidak dapat mengaktifkan/menjalankan makro ini, saya telah memeriksa semua pengaturan pusat kepercayaan, tetapi tidak ada yang terjadi, tolong bantu saya
Komentar ini diminimalkan oleh moderator di situs
Hai, sepertinya saya tidak bisa menjalankan ini. Sel yang ingin saya rujuk ditarik dari rumus - apakah ini sebabnya filter tidak dapat menemukannya karena melihat rumus daripada nilai yang dikembalikan rumus? Terima kasih sebelumnyaHeather McDonagh
Komentar ini diminimalkan oleh moderator di situs
Hai Heather, apakah Anda menemukan solusi. Saya memiliki masalah yang sama.
Komentar ini diminimalkan oleh moderator di situs
Saya dapat memodifikasi/memfilter 3 pivot berbeda yang ada di tab yang sama. Saya juga menambahkan satu baris di kumpulan data saya "Tidak Ada Data Ditemukan", jika tidak, filter meninggalkan "SEMUA" yang tidak saya inginkan. Hal di atas sangat membantu saya untuk mendapatkan Kudos dengan manajemen jadi saya ingin berbagi. Perhatikan bahwa (Semua) peka huruf besar-kecil membuat saya sedikit memikirkannya.
Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
'uji
Redupkan xPTable Sebagai PivotTable
Redupkan xPFile Sebagai PivotField
Redupkan xStr Sebagai String

Redupkan x2PTable Sebagai PivotTable
Redupkan x2PFile Sebagai PivotField
Redupkan x2Str Sebagai String

Redupkan x3PTable Sebagai PivotTable
Redupkan x3PFile Sebagai PivotField
Redupkan x3Str Sebagai String

On Error Resume Next
Jika Intersect(Target, Range("a2:e2")) Tidak Ada Lalu Keluar Sub

Application.ScreenUpdating = Salah

'tbl-1
Atur xPTable = Worksheets("Graphical").PivotTables("PivotTable1")
Atur xPFile = xPTable.PivotFields("MR Department - Department")
xStr = Target.Teks
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Jika xPFile.CurrentPage = "(Semua)" Maka xPFile.CurrentPage = "Tidak Ada Data Ditemukan"

'tbl-2
Atur x2PTable = Worksheets("Graphical").PivotTables("PivotTable2")
Atur x2PFile = x2PTable.PivotFields("MR Department - Department")
x2Str = Target.Teks
x2PFile.ClearAllFilters
x2PFile.CurrentPage = x2Str
Jika x2PFile.CurrentPage = "(Semua)" Maka x2PFile.CurrentPage = "Tidak Ada Data Ditemukan"

'tbl-3
Atur x3PTable = Worksheets("Graphical").PivotTables("PivotTable3")
Atur x3PFile = x3PTable.PivotFields("MR Department - Department")
x3Str = Target.Teks
x3PFile.ClearAllFilters
x3PFile.CurrentPage = x3Str
Jika x3PFile.CurrentPage = "(Semua)" Maka x3PFile.CurrentPage = "Tidak Ada Data Ditemukan"

Application.ScreenUpdating = Benar

End Sub
Komentar ini diminimalkan oleh moderator di situs
Apakah ini mungkin dengan lembar google? Jika demikian, bagaimana?
Komentar ini diminimalkan oleh moderator di situs
Google Spreadsheet tidak memerlukan tabel pivot apa pun. Anda dapat langsung tampil melalui Fungsi Filter
Komentar ini diminimalkan oleh moderator di situs
Saya ingin menggunakan beberapa kode Perubahan Lembar Kerja di lembar kerja yang sama. Bagaimana cara melakukannya? Kode saya seperti di bawah ini:
Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
'Filter tabel pivot berdasarkan nilai sel
Redupkan xPTable Sebagai PivotTable
Redupkan xPFile Sebagai PivotField
Redupkan xStr Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("D20:D21")) Tidak Ada Lalu Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
Setel xPFile = xPTable.PivotFields("Penunjukan")
xStr = Target.Teks
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = Benar
End Sub

Sub Worksheet_Change2 Pribadi (Target ByVal Sebagai Rentang)
'Filter tabel pivot berdasarkan nilai sel 2
Redupkan xPTable Sebagai PivotTable
Redupkan xPFile Sebagai PivotField
Redupkan xStr Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("H20:H21")) Tidak Ada Lalu Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
Setel xPFile = xPTable.PivotFields("Penawaran")
xStr = Target.Teks
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = Benar
End Sub
Komentar ini diminimalkan oleh moderator di situs
Sekarang, gostaria de saber se quisesse filtrar mais de uma categoria como poderia ser?
Komentar ini diminimalkan oleh moderator di situs
Bagaimana jika saya ingin menautkan sel pilihan ke tab lain? Ini adalah kode saya sejauh ini
Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
Redupkan xPTable1 Sebagai PivotTable
Redupkan xPFile1 Sebagai PivotField
Redupkan xStr1 Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("B1")) Tidak Ada Lalu Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable1 = Worksheets("SM_SKU PIVOTS").PivotTables("PivotTable1")
Setel xPFile1 = xPTable1.PivotFields("Geografi")
xStr1 = Target.Teks
xPFile1.ClearAllFilters
xPFile1.CurrentPage = xStr1
Application.ScreenUpdating = Benar

Redupkan xPTable2 Sebagai PivotTable
Redupkan xPFile2 Sebagai PivotField
Redupkan xStr2 Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("B1")) Tidak Ada Lalu Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable2 = Worksheets("SM_SKU PIVOTS").PivotTables("PivotTable4")
Setel xPFile2 = xPTable2.PivotFields("Geografi")
xStr2 = Target.Teks
xPFile2.ClearAllFilters
xPFile2.CurrentPage = xStr2
Application.ScreenUpdating = Benar

Redupkan xPTable3 Sebagai PivotTable
Redupkan xPFile3 Sebagai PivotField
Redupkan xStr3 Sebagai String
On Error Resume Next
Jika Intersect(Target, Range("B1")) Tidak Ada Lalu Keluar Sub
Application.ScreenUpdating = Salah
Atur xPTable3 = Worksheets("SM_SKU PIVOTS").PivotTables("PivotTable8")
Setel xPFile3 = xPTable3.PivotFields("Geografi")
xStr3 = Target.Teks
xPFile3.ClearAllFilters
xPFile3.CurrentPage = xStr3
Application.ScreenUpdating = Benar

End Sub
Komentar ini diminimalkan oleh moderator di situs
Halo!

Saya baru dengan VBA dan saya ingin memiliki kode untuk memilih filter pivot berdasarkan rentang sel.
Bagaimana saya bisa mengubah "CurrentPage" menjadi nilai rentang?
Terima kasih!!
-------------------------------------------------- -----------------------------------------
Sub PrintTour()

ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Bereich 1].[Tur].[Tur ]"). _
Hapus Semua Filter
ActiveSheet.PivotTables("PivotTable1").PivotFields( _
"[Bereich 1].[Tur].[Tur]"). _
CurrentPage = "[Bereich 1].[Tur lt. Anlieferungstag].&[4001-01]"
End Sub
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak untuk kode ini! Saya membuatnya berfungsi setelah menyesuaikan untuk memenuhi bidang saya, tetapi setelah memformat beberapa perubahan pada lembar saya sekarang tidak berfungsi! Saya memindahkannya dari A1 ke B1, mengubah beberapa pemformatan sel untuk membuatnya menonjol, dll. Tidak ada yang terlalu gila tetapi sekarang tidak diperbarui ketika saya mengubah teks di B1. Ada yang punya ide?

Sub Lembar Kerja Pribadi_Rubah (Rentang Target As ByVal)
'uji
Redupkan xPTable Sebagai PivotTable
Redupkan xPFile Sebagai PivotField
Redupkan xStr Sebagai String

Redupkan x2PTable Sebagai PivotTable
Redupkan x2PFile Sebagai PivotField
Redupkan x2Str Sebagai String

Redupkan x3PTable Sebagai PivotTable
Redupkan x3PFile Sebagai PivotField
Redupkan x3Str Sebagai String

On Error Resume Next
Jika Intersect(Target, Range("b1")) Tidak Ada Lalu Keluar Sub

Application.ScreenUpdating = Salah

'tbl-1
Atur xPTable = Worksheets("Line Report").PivotTables("PivotTable7")
Setel xPFile = xPTable.PivotFields("Sumber Utopia")
xStr = Target.Teks
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr

'tbl-2
Atur x2PTable = Worksheets("Line Report").PivotTables("PivotTable2")
Setel x2PFile = x2PTable.PivotFields("Sumber Utopia")
x2Str = Target.Teks
x2PFile.ClearAllFilters
x2PFile.CurrentPage = x2Str

'tbl-3
Atur x3PTable = Worksheets("Line Report").PivotTables("PivotTable3")
Setel x3PFile = x3PTable.PivotFields("Sumber Utopia")
x3Str = Target.Teks
x3PFile.ClearAllFilters
x3PFile.CurrentPage = x3Str

Application.ScreenUpdating = Benar

End Sub
Komentar ini diminimalkan oleh moderator di situs
Hai Lance,
Saya menguji kode Anda dan berfungsi dengan baik dalam kasus saya. Mengubah format sel tidak memengaruhi pengoperasian kode.
Komentar ini diminimalkan oleh moderator di situs
Bagaimana cara kerjanya dengan Power Pivot, saat menggunakan beberapa tabel? Saya merekam makro yang mengubah nilai dalam filter. Membuat beberapa perubahan untuk membuat kode di atas berfungsi. Tapi itu melempar kesalahan Type mismatch. Tidak peduli apa yang saya lakukan.
Komentar ini diminimalkan oleh moderator di situs
Hai DK,
Metode ini tidak berfungsi untuk Power Pivot. Maaf untuk ketidaknyamanannya.
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan