Lewati ke konten utama

Menguasai COUNTIF() di Power BI: Pendekatan Berbasis DAX

Pengguna Power BI dari Excel selalu mengetahui bahwa Power BI tidak memiliki fungsi COUNTIF() bawaan. Artikel ini akan menunjukkan berbagai cara untuk mengimplementasikan COUNTIF() di Power BI dan kasus penggunaannya yang praktis.
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Fungsi COUNTIF() populer di kalangan pengguna Excel karena memungkinkan mereka menghitung data berdasarkan suatu kondisi. Namun, saat beralih ke Power BI, banyak pengguna menyadari bahwa Power BI tidak memiliki fungsi COUNTIF() bawaan.

Untungnya, pengguna dapat mereplikasi fungsionalitas COUNTIF() menggunakan berbagai rumus DAX (Data Analysis Expressions). Artikel ini akan memandu Anda untuk mencapai perhitungan Power BI ala COUNTIF() menggunakan fungsi DAX seperti CALCULATE(), COUNTROWS(), COUNTA(), dan FILTER().

Mengapa COUNTIF() Tidak Ada di Power BI

Berbeda dengan Excel yang berbasis rumus per sel, Power BI dibangun dengan perhitungan berbasis tabel dan filter context. Power BI beroperasi pada tabel dan relasinya, menggunakan DAX untuk perhitungan. 

Alih-alih merujuk sel individual, DAX bekerja dengan kolom dan secara dinamis menerapkan perhitungan berdasarkan filter context—yang ditentukan oleh slicer, filter baris/kolom, dan relasi tabel. 

Excel COUNTIF() menggunakan pendekatan berbasis sel, di mana rumus diterapkan baris demi baris dalam rentang tertentu. Pendekatan Power BI berbeda karena menggunakan relasi antar tabel untuk menyempurnakan perhitungan. Alih-alih memindai sel individual, Power BI menerapkan filter berdasarkan konteks laporan menggunakan DAX. 

Implikasi bagi pengguna

Sebagai pengguna Power BI yang berasal dari Excel, Anda perlu beradaptasi dengan pendekatan perhitungan berbasis tabel di Power BI. Pendekatan DAX, yang beroperasi pada kolom data, lebih efisien dibanding iterasi baris demi baris. 

Berbeda dengan Excel, pengguna Power BI harus memilih metode replikasi COUNTIF() yang paling sesuai dengan model data mereka. Jadi, sebagai pengguna, Anda perlu melepaskan kebiasaan menerapkan rumus pada sel individual dan berpikir dalam kerangka tabel serta filter context.

Fungsi DAX Inti untuk Mereplikasi Logika COUNTIF()

Pendekatan Anda dalam mengimplementasikan COUNTIF() di Power BI bergantung pada faktor seperti relasi antar tabel, ada tidaknya nilai hilang pada data, ukuran data, dan sebagainya. Beberapa fungsi DAX lebih dioptimalkan untuk pemrosesan yang lebih cepat dan efisien.  

Tinjauan fungsi kunci

Fungsi DAX digunakan untuk membuat calculated column, measure, dan tabel. Berikut beberapa fungsi DAX yang akan membantu Anda mereplikasi fungsionalitas COUNTIF() di Power BI.

  • CALCULATE(): Fungsi ini digunakan untuk memodifikasi filter context bagi suatu ekspresi dan memungkinkan penerapan filter baru atau memodifikasi filter yang ada secara dinamis. Misalnya, Anda dapat menggunakan fungsi ini untuk menghitung total penjualan untuk wilayah tertentu. 

  • COUNTROWS(): Menghitung jumlah baris dalam sebuah tabel, dan dapat digabungkan dengan fungsi pemfilteran untuk menghitung baris tertentu. Contohnya menghitung pesanan penjualan di atas $1.000.

  • COUNTA(): Menghitung nilai non-kosong dalam sebuah kolom dan berguna saat menangani data yang hilang. Misalnya, Anda dapat menghitung ID pelanggan yang tidak kosong untuk memastikan hanya catatan valid yang dihitung. 

  • FILTER(): Biasanya digunakan bersama CALCULATE() dan COUNTROWS(), fungsi ini mengembalikan tabel berdasarkan suatu kondisi. Misalnya, Anda dapat mengembalikan tabel berisi pesanan penjualan yang melebihi $500.

  • ALLEXCEPT(): Menghapus semua filter yang diterapkan kecuali yang ditentukan di fungsi; misalnya, Anda dapat mengembalikan tabel total penjualan per wilayah meski telah menerapkan slicer atau filter tabel pada data. Ini penting saat Anda melakukan agregasi di atas hierarki.

  • RELATEDTABLE(): Mengembalikan tabel berdasarkan relasi yang ada. Contohnya menghitung jumlah pesanan penjualan untuk tiap pelanggan menggunakan relasi dari data pelanggan.

Cara kerjanya bersama

Karena COUNTROWS() menghitung jumlah baris dalam tabel, Anda bisa mengembalikan tabel dari data yang memenuhi kondisi menggunakan FILTER(). Lalu, gunakan fungsi CALCULATE() untuk memodifikasi filter context, memastikan COUNTROWS() hanya mempertimbangkan baris yang sesuai dengan kondisi. Berikut contoh sintaks DAX yang menunjukkan cara kerjanya.

Sales over 5 quantities = 
CALCULATE(
    COUNTROWS(Sales), 
    FILTER('Sales, 'Sales[Quantity] > 5)
)

Fungsi CALCULATE() kurang lebih seperti menggabungkan dua ekspresi berbeda. Alih-alih menggunakan COUNTROWS() untuk menghitung semua data, fungsi CALCULATE() akan membatasinya pada filter context yang diturunkan menggunakan fungsi FILTER(). 

Contoh Dasar Padanan COUNTIF() di Power BI

Sebelum saya menunjukkan beberapa contoh cara mengimplementasikan COUNTIF() di Power BI, pastikan Anda memuat data penjualan supermarket. 

Contoh 1: Jumlah pesanan oleh pelanggan perempuan

Sintaks DAX di bawah ini menghitung jumlah pesanan oleh pelanggan perempuan.

Orders by female customers = 
CALCULATE(
    COUNTROWS(Sales), 
    FILTER(Sales, Sales[Gender] = "Female")
)

Gambar yang menunjukkan total jumlah pesanan oleh pelanggan perempuan.

Jumlah pesanan oleh pelanggan perempuan. Gambar oleh Penulis.

  • FILTER(Sales, Sales[Gender] = "Female") memfilter pesanan penjualan oleh pelanggan perempuan.

  • COUNTROWS(Sales), alih-alih menghitung semua data, menghitung tabel yang telah difilter karena pengaruh fungsi CALCULATE().

Contoh 2: Menghitung pesanan per kota

Berikut sintaks DAX untuk menghitung jumlah pesanan untuk setiap kota.

Total Orders by City = CALCULATE(COUNTA(Sales[City]), ALLEXCEPT(Sales, Sales[City]))

Gambar yang menunjukkan total jumlah pesanan per kota.

Jumlah pesanan per kota. Gambar oleh Penulis.

  • ALLEXCEPT(Sales, Sales[City]) menghapus semua filter kecuali kolom City dari tabel Sales.

  • CALCULATE() memastikan COUNTA() dihitung terpisah untuk setiap kota, bertindak seperti fungsi COUNTIF() di Excel.

Contoh 3: Metode alternatif menggunakan COUNTROWS

Alternatif lain adalah menggunakan sintaks DAX di bawah ini, yang memakai COUNTROWS() alih-alih COUNTA().

Total Orders by City = CALCULATE(COUNTROWS(Sales), ALLEXCEPT(Sales, Sales[City]))

COUNTROWS() menghitung jumlah baris di tabel Sales terlepas dari ada tidaknya nilai kosong. 

Jika kolom City kosong, kedua pendekatan akan menghasilkan hasil yang sama. Namun, jika ada nilai hilang pada kolom City, COUNTA() mengecualikannya, sedangkan COUNTROWS() menyertakannya.

Gunakan fungsi COUNTROWS() ketika setiap baris merepresentasikan satu record, seperti pesanan penjualan. Namun jika data Anda memiliki beberapa entri tidak valid, Anda dapat menggunakan fungsi COUNTA() yang hanya menghitung record dengan nilai valid. 

Menggunakan Measure untuk Perhitungan Dinamis

Ada situasi di mana Anda harus membuat measure yang berubah secara dinamis berdasarkan filter tabel atau slicer. Bagian ini membahas cara mengimplementasikan COUNTIF() dalam skenario seperti itu.

Skenario: Menghitung pesanan bernilai tinggi

Berikut contoh ketika kita ingin mengetahui pesanan dengan total kuantitas lebih dari lima.

High Value Orders = COUNTROWS(FILTER(Sales, Sales[Quantity] > 5))

Gambar yang menunjukkan jumlah pesanan bernilai tinggi.

Jumlah Pesanan Bernilai Tinggi. Gambar oleh Penulis.

  • FILTER(Sales, Sales[Quantity] > 5) mengembalikan pesanan penjualan dengan kuantitas pesanan lebih dari lima.

  • COUNTROWS()  menghitung baris pada tabel yang telah difilter dengan pesanan lebih dari lima.

Berbeda dengan calculated column yang, ketika dibuat, menambah penggunaan penyimpanan dan ukuran model, measure hanya dihitung saat diperlukan sehingga lebih efisien. Sintaks DAX untuk membuat calculated column akan seperti ini:

 High Value = IF(Sales[Quantity] > 5, 1, 0)

Gambar yang menunjukkan calculated column high value. Gambar oleh Penulis.

Calculated column High Value. Gambar oleh Penulis.

Ini akan menyimpan nilai statis 1 atau 0 di setiap baris. Untuk menghitung pesanan bernilai tinggi, Anda harus membuat measure menggunakan SUM(Sales[High Value]). 

Bayangkan membuat calculated column untuk setiap filter. Ini akan meningkatkan penggunaan penyimpanan dan mengurangi fleksibilitas. 

Berikut tabel yang menunjukkan mengapa Anda sebaiknya mempertimbangkan penggunaan measure dibanding calculated column.

Measure

Calculated Column

Dihitung saat kueri, merespons filter

Statis, dihitung saat data dimuat/di-refresh

Lebih efisien, dihitung hanya saat diperlukan

Mengonsumsi penyimpanan dan menambah ukuran model

Dapat menyesuaikan secara dinamis berdasarkan filter, slicer, dan visual.

Nilai tetap sama kecuali data di-refresh. 

Teknik Lanjutan dan Multi-Kondisi

Excel COUNTIFS() mendukung banyak kondisi, yang juga dapat Anda replikasi di Power BI.

Kriteria ganda / logika COUNTIFS()

Berikut sintaks DAX untuk menghitung pesanan dengan kuantitas pesanan lebih dari lima, dibayar melalui kartu kredit. 

Quantity Above 5 and Credit Card = 
COUNTROWS(
    FILTER(
        Sales, 
        Sales[Quantity] > 5 && Sales[Payment] = "Credit card"
    )
)

Gambar yang menunjukkan jumlah pesanan dengan kuantitas di atas lima dan dibayar melalui kartu kredit.

Jumlah pesanan dengan kuantitas di atas lima dan dibayar melalui kartu kredit. Gambar oleh Penulis.

Rumus di atas memfilter tabel Sales di mana kuantitas pesanan melebihi 5 dan metode pembayaran adalah kartu kredit. && merepresentasikan operator AND, memastikan hanya pesanan yang memenuhi kedua kondisi yang dihitung.

Ketika Anda hanya tertarik pada pesanan yang memenuhi salah satu kondisi, gunakan operator OR yang direpresentasikan oleh || di DAX.

Quantity Above 5 or Credit Card = 
COUNTROWS(
    FILTER(
        Sales, 
        Sales[Quantity] > 5 || Sales[Payment] = "Credit card"
    )
)

Gambar yang menunjukkan pesanan dengan kuantitas di atas lima atau dibayar melalui kartu kredit.

Jumlah pesanan dengan kuantitas di atas lima atau dibayar melalui kartu kredit. Gambar oleh Penulis.

Menggunakan operator logika dan variabel

Sintaks DAX yang mereplikasi COUNTIF() kadang bisa menjadi kompleks. Menggunakan variabel membuatnya mudah dipahami dan memastikan kondisi dievaluasi dalam urutan yang diinginkan. Ini juga menghindari perhitungan berulang dengan menyimpan nilai sekali saja. 

Berikut contoh lain yang menunjukkan cara menghitung jumlah pesanan oleh pelanggan perempuan, yang dibayar melalui kartu kredit atau dengan kuantitas di atas lima, menggunakan variabel.

CreditCard Or Above 5 By Female = 
VAR FilteredSales = 
    FILTER(
        Sales,
        (Sales[Quantity] > 5 || Sales[Payment] = "Credit card") 
        && Sales[Gender] = "Female"
    )
RETURN 
    COUNTROWS(FilteredSales)

Gambar yang menunjukkan jumlah pesanan oleh pelanggan perempuan yang dibayar melalui kartu kredit atau dengan kuantitas di atas lima.

Jumlah pesanan oleh pelanggan perempuan yang dibayar melalui kartu kredit atau dengan kuantitas di atas lima. Gambar oleh Penulis.

Filter disimpan dalam variabel yang digunakan pada fungsi COUNTROWS(). Berikut cara lain menulis ekspresi di atas

CreditCard Or Above 5 By Female = 
VAR MinQuantity = 5
VAR FilteredSales = 
    FILTER(
        Sales,
        (Sales[Quantity] > MinQuantity || Sales[Payment] = "Credit card") 
        && Sales[Gender] = "Female"
    )
VAR Result = COUNTROWS(FilteredSales)
RETURN 
    Result

Kali ini, baik kuantitas minimum, filter, maupun hasil disimpan sebagai variabel. Seperti prinsip BODMAS yang terkenal dalam matematika, yang memprioritaskan operasi di dalam tanda kurung terlebih dahulu, DAX juga memprioritaskan kondisi di dalam tanda kurung terlebih dahulu. 

Pada contoh di atas, operator OR || dievaluasi terlebih dahulu sebelum operator AND && karena berada di dalam tanda kurung. Ini berarti pesanan penjualan dengan kuantitas di atas 5 atau dibayar dengan kartu kredit difilter terlebih dahulu sebelum memfilter pesanan oleh pelanggan perempuan. 

COUNTIF() lintas tabel terkait

Jika Anda bekerja dengan lebih dari satu tabel, Anda juga dapat menggunakan COUNTROWS() atau COUNTA() untuk menghitung jumlah record berdasarkan kondisi yang terpenuhi di tabel lain menggunakan fungsi RELATEDTABLE(). 

Fungsi RELATEDTABLE() mempertimbangkan relasi model antara dua tabel, yang dapat one-to-one atau one-to-many.

Misalkan kita memiliki tabel penjualan lain bernama Sales2, yang masih menggunakan data penjualan supermarket yang sama. Dan Sales serta Sales2 berelasi melalui Invoice ID. 

Gambar yang menunjukkan relasi antara tabel Sales dan Sales2.

Relasi antara tabel Sales dan Sales2. Gambar oleh Penulis.

Anda dapat menggunakan sintaks DAX di bawah ini untuk melihat berapa banyak pelanggan yang merupakan member, dengan asumsi Sales tidak memiliki kolom Customer type tetapi Sales2 memiliki.

Orders by members = 
COUNTROWS(FILTER(RELATEDTABLE(Sales2), Sales2[Customer Type] = "Member"))

Gambar yang menunjukkan total jumlah pesanan oleh pelanggan yang merupakan member

Jumlah pesanan oleh pelanggan yang merupakan member. Gambar oleh Penulis.

  • RELATEDTABLE(Sales2)  secara otomatis memfilter Sales2 untuk hanya menyertakan baris dengan Invoice ID yang sama pada data Sales.

  • Fungsi FILTER() semakin mempersempitnya hanya pada pesanan "Member", sementara COUNTROWS() menghitung tabel yang telah difilter. 

Kasus Penggunaan Praktis dan Kiat Integrasi

Berikut beberapa kasus penggunaan praktis dan kiat integrasi untuk mengimplementasikan COUNTIF() di Power BI.

Skenario dunia nyata

Jika Anda memiliki tabel hasil ujian siswa atau pesanan, Anda dapat menggunakan COUNTROWS() dan FILTER() untuk menghitung jumlah record yang berulang. Menggunakan kolom nilai mereka, Anda juga bisa menghitung berapa banyak siswa yang lulus atau gagal. Padanan COUNTIF() penting lainnya adalah SUMX(), yang dapat Anda gunakan untuk menjumlahkan nilai siswa berdasarkan suatu kondisi. 

Alat Integrasi Data

Alih-alih selalu mengunggah file spreadsheet dari Excel atau Google Sheets untuk analisis, Anda dapat menggunakan alat seperti Coupler.io untuk mengotomatiskan ekstraksi data. 

Setelah spreadsheet Anda diperbarui, perubahan tersebut otomatis tercermin pada dasbor Power BI tanpa perlu Anda unggah secara manual. 

Ini memastikan Power BI selalu mencerminkan data terbaru tanpa mengunggah file secara manual, sehingga Anda sebagai pengguna dapat fokus menggali insight dan membuat keputusan bisnis. Anda juga dapat menggunakan alat eksternal ini untuk menghubungkan banyak sumber ke dalam satu dasbor. 

Kiat dari pengalaman untuk keterbacaan dan performa

Selalu gunakan calculated column ketika perhitungan harus dilakukan pada tingkat baris sebelum agregasi. Gunakan measure ketika perhitungan bergantung pada filter atau slicer yang dipilih pengguna, atau ketika Anda memerlukan nilai agregat alih-alih perhitungan tingkat baris. 

Memahami filter context adalah kunci untuk mengetahui kapan harus menggunakan measure atau calculated column. Filter context berlaku ketika slicer, filter, atau pengelompokan diterapkan, berbeda dengan row context yang berlaku dalam baris tabel. Calculated column menggunakan row context dan dapat membuat kolom yang tidak perlu sehingga meningkatkan penggunaan memori. 

Penting juga untuk mempertimbangkan filter context saat membuat measure. Misalnya, alih-alih menggunakan SUM(Sales[Amount]), gunakan CALCULATE(SUM(Sales[Amount])) untuk mengendalikan pemfilteran. Jika Anda sudah memiliki filter yang diterapkan pada data, Anda tidak akan mendapatkan nilai yang tepat menggunakan yang pertama, tetapi semua filter yang diterapkan pada data diabaikan dengan menggunakan yang kedua. 

Selain itu, hindari menggunakan terlalu banyak iterator seperti FILTER() dalam satu sintaks DAX, karena akan memperlambat dataset besar sebab ia melakukan iterasi baris demi baris.

Kesimpulan

Meskipun COUNTIF() bawaan di Excel tidak ada di Power BI, fungsi DAX seperti CALCULATE(), COUNTROWS(), COUNTA(), dan FILTER() memungkinkan Anda mereplikasi fungsionalitas ini.

Pendekatan yang Anda pilih bergantung pada sifat data Anda. Jika ada nilai hilang, pertimbangkan menggunakan COUNTA(), tetapi jika data Anda lengkap, Anda dapat menggunakan COUNTROWS(). Untuk mengecualikan filter eksternal yang diterapkan pada data, pastikan Anda menggunakan ALLEXCEPT() di dalam fungsi CALCULATE().

Selalu penting untuk dicatat bahwa jenis sintaks DAX yang Anda tulis menentukan seberapa cepat visual dimuat di dasbor Anda. Usahakan menulis sintaks DAX yang dioptimalkan dan pahami kapan harus menggunakan measure atau calculated column. Berikut beberapa sumber DataCamp untuk menjelajahi teknik DAX tingkat lanjut lainnya. 


Adejumo Ridwan Suleiman's photo
Author
Adejumo Ridwan Suleiman
LinkedIn

Instruktur sains data berpengalaman dan Biostatistikawan dengan keahlian dalam Python, R, dan machine learning.

Pertanyaan Power BI Countif()

Apakah Power BI memiliki fungsi COUNTIF() bawaan?

Power BI tidak memiliki fungsi COUNTIF() bawaan, tetapi ada berbagai cara untuk mengimplementasikannya di Power BI.

Apa saja fungsi untuk mengimplementasikan COUNTIF() di Power BI?

Fungsi utama untuk mengimplementasikan COUNTIF() di Power BI adalah CALCULATE(), COUNTROWS(), COUNTA(), FILTER(), ALLEXCEPT(), dan RELATEDTABLE(). Bergantung pada model data, Anda dapat menggabungkan fungsi-fungsi ini untuk mengimplementasikan COUNTIF() di Power BI.

Apa perbedaan antara COUNTROWS() dan COUNTA()?

COUNTROWS() menghitung jumlah baris dalam data terlepas dari apakah baris tersebut memiliki record yang valid, sedangkan COUNTA() menghitung jumlah record valid dalam sebuah kolom.

Apa keuntungan menggunakan measure dibanding calculated column?

Measure lebih efisien dan tidak banyak menggunakan penyimpanan karena dihitung secara langsung, berbeda dengan calculated column yang menambah dimensi data sehingga mengonsumsi penyimpanan.

Apa saja penerapan praktis implementasi COUNTIF() di Power BI?

Implementasi COUNTIF() di Power BI memiliki banyak kegunaan, mulai dari penghitungan bersyarat atas record hingga membuat kolom bersyarat berdasarkan hitungan, dan seterusnya.

Topik
Power BI
Analisis Data

Belajar bersama DataCamp

Kursus

Pengantar DAX di Power BI

3 jam
187K
Tingkatkan pengetahuan Power BI Anda dengan mempelajari dasar-dasar Data Analysis Expressions (DAX) seperti kolom terhitung, tabel, dan ukuran.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya