Ana içeriğe atla

Power BI’da COUNTIF()’i Ustaca Kullanmak: DAX Tabanlı Yaklaşım

Excel’den gelen Power BI kullanıcıları, Power BI’da yerel bir COUNTIF() işlevi olmadığını keşfeder. Bu makale, Power BI’da COUNTIF()’i uygulamanın çeşitli yollarını ve pratik kullanım alanlarını gösterecek.
Güncel 3 Eki 2026  · 11 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Excel kullanıcıları arasında COUNTIF() işlevi, bir koşula göre veri sayımı yapmaya olanak tanıdığı için popülerdir. Ancak Power BI’a geçiş yapıldığında, Power BI’da yerel bir COUNTIF() işlevinin bulunmadığı fark edilir.

Neyse ki, kullanıcılar çeşitli DAX (Data Analysis Expressions) formüllerini kullanarak COUNTIF() işlevselliğini çoğaltabilir. Bu makale, CALCULATE(), COUNTROWS(), COUNTA() ve FILTER() gibi DAX işlevlerini kullanarak Power BI’da COUNTIF() benzeri hesaplamaların nasıl yapılacağını anlatır.

Power BI’da Neden COUNTIF() Yok

Hücre tabanlı formüllere dayanan Excel’in aksine, Power BI tablo tabanlı hesaplamalar ve filtre bağlamı üzerine kuruludur. Hesaplamalar için DAX kullanarak tablolar ve bunların ilişkileri üzerinde çalışır. 

DAX, tek tek hücrelere başvurmak yerine sütunlarla çalışır ve dilimleyiciler, satır/sütun filtreleri ve tablo ilişkileri tarafından belirlenen filtre bağlamına göre hesaplamaları dinamik olarak uygular. 

Excel COUNTIF(), formüllerin belirli bir aralıkta satır satır uygulandığı hücre tabanlı bir yaklaşım kullanır. Power BI yaklaşımı ise, hesaplamaları iyileştirmek için tablolar arasındaki ilişkileri kullanır. Tek tek hücreleri taramak yerine, DAX ile rapor bağlamına dayalı filtreler uygular. 

Kullanıcılar için sonuçlar

Excel’den gelen bir Power BI kullanıcısı olarak, hesaplamaya yönelik Power BI’ın tablo tabanlı yaklaşımına uyum sağlamanız gerekir. Verinin sütunları üzerinde çalışan DAX yaklaşımları, satır satır yinelemeye kıyasla daha verimlidir. 

Excel’den farklı olarak, Power BI kullanıcıları veri modellerine en uygun COUNTIF() çoğaltma yöntemini seçmelidir. Bu nedenle, kullanıcı olarak formülleri tek tek hücrelere uygulama alışkanlığını bırakıp tablolar ve filtre bağlamlarıyla düşünmelisiniz.

COUNTIF() Mantığını Çoğaltmak için Temel DAX İşlevleri

Power BI’da COUNTIF() uygulama yaklaşımınız; tablolar arası ilişki, veri setinizde eksik değerlerin varlığı, veri boyutu vb. etkenlere bağlıdır. Bazı DAX işlevleri daha hızlı ve verimli işlem için daha iyi optimize edilmiştir.  

Temel işlevlere genel bakış

DAX işlevleri, hesaplanan sütunlar, ölçüler ve tablolar oluşturmak için kullanılır. Power BI’da COUNTIF() işlevini çoğaltmanıza yardımcı olacak bazı DAX işlevleri şunlardır.

  • CALCULATE(): Bu işlev, bir ifadenin filtre bağlamını değiştirir ve yeni filtreler uygulamayı veya var olanları dinamik olarak değiştirmeyi sağlar. Örneğin belirli bir bölgenin toplam satışlarını hesaplamak için kullanılabilir. 

  • COUNTROWS(): Verilen bir tablodaki satır sayısını sayar ve belirli satırları saymak için filtreleme işlevleriyle birleştirilebilir. Örneğin 1.000 $’ın üzerindeki satış siparişlerini saymak.

  • COUNTA(): Bir sütundaki boş olmayan değerleri sayar ve eksik verilerle uğraşırken kullanışlıdır. Örneğin yalnızca geçerli kayıtların hesaba katıldığından emin olmak için boş olmayan müşteri kimliklerini sayabilirsiniz. 

  • FILTER(): Genellikle CALCULATE() ve COUNTROWS() ile kullanılır, bir koşula göre bir tablo döndürür. Örneğin 500 $’ı aşan satış siparişlerini içeren bir tablo döndürebilirsiniz.

  • ALLEXCEPT(): Belirtilenler dışındaki tüm filtreleri kaldırır; örneğin veriye dilimleyici veya tablo filtreleri uygulanmış olsa bile bölgelere göre toplam satışların yer aldığı bir tablo döndürebilirsiniz. Hiyerarşi üzerinde toplulaştırma yaparken önemlidir.

  • RELATEDTABLE(): Mevcut ilişkilere dayalı bir tablo döndürür. Örneğin, müşteri verilerindeki ilişkileri kullanarak her müşteri için satış siparişi sayısını saymak.

Birlikte nasıl çalışırlar

COUNTROWS() bir tablodaki satır sayısını saydığından, FILTER() kullanarak verinizden bir koşulu sağlayan bir tablo döndürebilirsiniz. Ardından CALCULATE() işleviyle filtre bağlamını değiştirip COUNTROWS()’un yalnızca koşulla eşleşen satırları dikkate almasını sağlarsınız. Bunun nasıl çalıştığını gösteren bir DAX sözdizimi örneği aşağıdadır.

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

CALCULATE() işlevi, iki farklı ifadeyi birleştirmeye benzer şekilde çalışır. COUNTROWS() ile tüm veriyi saymak yerine, CALCULATE() işlevi sayımı FILTER() ile türetilen filtre bağlamıyla sınırlar. 

Power BI’da COUNTIF() Muadillerine Temel Örnekler

Power BI’da COUNTIF() uygulama örneklerine geçmeden önce, süpermarket satış verisini yüklediğinizden emin olun. 

Örnek 1: Kadın müşterilerin sipariş sayısı

Aşağıdaki DAX sözdizimi kadın müşterilerin verdiği sipariş sayısını hesaplar.

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

Kadın müşterilerin toplam sipariş sayısını gösteren görsel.

Kadın müşterilerin sipariş sayısı. Görsel: Yazar.

  • FILTER(Sales, Sales[Gender] = "Female") satış siparişlerini kadın müşterilere göre filtreler.

  • COUNTROWS(Sales), CALCULATE() işlevinin etkisiyle tüm veriyi saymak yerine filtrelenmiş tabloyu sayar.

Örnek 2: Şehir bazında sipariş sayımı

Aşağıda her şehir için sipariş sayımını yapan bir DAX sözdizimi yer almaktadır.

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

Şehir bazında toplam sipariş sayısını gösteren görsel.

Şehir bazında sipariş sayısı. Görsel: Yazar.

  • ALLEXCEPT(Sales, Sales[City]), Sales tablosundan City sütunu dışındaki tüm filtreleri kaldırır.

  • CALCULATE(), COUNTA()’nın her şehir için ayrı ayrı hesaplanmasını sağlar ve Excel’deki COUNTIF() gibi davranır.

Örnek 3: COUNTROWS kullanarak alternatif yöntem

Bir diğer alternatif, COUNTA() yerine COUNTROWS() kullanan aşağıdaki DAX sözdizimidir.

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

COUNTROWS(), boş değerlerin varlığına bakmaksızın Sales tablosundaki satır sayısını sayar. 

Eğer City sütunu boşsa her iki yaklaşım da aynı sonucu döndürür. Ancak City sütununda eksik değerler varsa, COUNTA() bunları hariç tutarken, COUNTROWS() dahil eder.

Her satır bir kaydı (örneğin bir satış siparişi) temsil ediyorsa COUNTROWS() kullanmalısınız. Ancak verinizde geçersiz kayıtlar varsa, yalnızca geçerli değere sahip kayıtları sayan COUNTA() işlevini kullanabilirsiniz. 

Dinamik Hesaplamalar için Ölçü (Measure) Kullanımı

Tablo filtresi veya dilimleyiciye göre dinamik olarak değişen ölçüler oluşturmanız gereken durumlar vardır. Bu bölüm, böyle senaryolarda COUNTIF()’in nasıl uygulanacağını ele alır.

Senaryo: Yüksek değerli siparişlerin sayımı

Toplam miktarı beşten büyük olan siparişleri bilmek istediğimiz bir örnek aşağıdadır.

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

Yüksek değerli siparişlerin sayısını gösteren görsel.

Yüksek değerli sipariş sayısı. Görsel: Yazar.

  • FILTER(Sales, Sales[Quantity] > 5), sipariş miktarı beşten büyük olan satışları döndürür.

  • COUNTROWS(), beşten büyük siparişlerin bulunduğu filtrelenmiş tablodaki satırları sayar.

Oluşturulduğunda depolama ve model boyutunu artıran hesaplanan sütunların aksine, ölçüler yalnızca ihtiyaç duyulduğunda hesaplanır ve bu da onları daha verimli kılar. Bir hesaplanan sütun için DAX sözdizimi şu şekilde olur:

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

Hesaplanan High Value sütununu gösteren görsel. Görsel: Yazar.

Hesaplanan sütun High Value. Görsel: Yazar.

Bu, her satıra statik 1 veya 0 yazar. Yüksek değerli siparişleri saymak için SUM(Sales[High Value]) kullanarak bir ölçü oluşturmanız gerekir. 

Her filtre için hesaplanan sütunlar oluşturduğunuzu hayal edin. Bu, depolama kullanımını artırır ve esnekliği azaltır. 

Ölçüleri, hesaplanan sütunlara tercih etmeniz için nedenleri gösteren bir tablo aşağıdadır.

Ölçü (Measure)

Hesaplanan Sütun

Sorgu anında hesaplanır, filtrelere yanıt verir

Statiktir, veri yüklendiğinde/yenilendiğinde hesaplanır

Daha verimlidir, yalnızca gerektiğinde hesaplanır

Depolama tüketir ve model boyutunu artırır

Filtrelere, dilimleyicilere ve görsellere göre dinamik olarak ayarlanabilir.

Veriler yenilenmedikçe değerler aynı kalır. 

İleri Teknikler ve Çoklu Koşullar

Excel COUNTIFS() çoklu koşulları destekler ve bunu Power BI’da da çoğaltabilirsiniz.

Birden çok ölçüt / COUNTIFS() mantığı

Aşağıda, sipariş miktarı beşten büyük ve kredi kartıyla ödenmiş siparişlerin sayımını yapan bir DAX sözdizimi yer alır. 

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

Miktarı beşin üzerinde olan ve kredi kartıyla ödenen sipariş sayısını gösteren görsel.

Miktarı beşin üzerinde olan ve kredi kartıyla ödenen sipariş sayısı. Görsel: Yazar.

Yukarıdaki formül, sipariş miktarı 5’i aşan ve ödeme yöntemi kredi kartı olan Sales tablosunu filtreler. &&, AND operatörünü temsil eder ve her iki koşulu sağlayan siparişlerin sayılmasını sağlar.

Sadece koşullardan herhangi birini sağlayan siparişlerle ilgilendiğinizde, DAX’ta || ile gösterilen OR operatörünü kullanırsınız.

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

Miktarı beşin üzerinde olan veya kredi kartıyla ödenen siparişleri gösteren görsel.

Miktarı beşin üzerinde olan veya kredi kartıyla ödenen sipariş sayısı. Görsel: Yazar.

Mantıksal operatörler ve değişkenler kullanma

COUNTIF()’i çoğaltan DAX sözdizimi bazen karmaşık hale gelebilir. Değişken kullanımı, anlaşılmasını kolaylaştırır ve koşulların istenen sırayla değerlendirilmesini sağlar. Ayrıca değerleri bir kez depolayarak gereksiz hesaplamaları önler. 

Aşağıda, değişkenler kullanarak kadın müşteri tarafından verilen ve ya kredi kartıyla ödenen ya da miktarı beşin üzerinde olan siparişlerin sayısını nasıl hesaplayacağınızı gösteren bir örnek vardır.

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

Kadın müşterilerin ya kredi kartıyla ödediği ya da miktarı beşin üzerinde olan sipariş sayısını gösteren görsel.

Kadın müşterilerin ya kredi kartıyla ödediği ya da miktarı beşin üzerinde olan sipariş sayısı. Görsel: Yazar.

Filtre bir değişkende saklanır ve COUNTROWS() işlevinde kullanılır. Yukarıdaki ifadeyi yazmanın bir başka yolu şöyledir

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

Bu kez hem minimum miktar hem filtre hem de sonuç değişken olarak saklanmıştır. Matematikte işlemlerde öncelik veren ünlü BODMAS ilkesinde olduğu gibi, DAX da parantez içindeki koşullara öncelik verir. 

Yukarıdaki örnekte, parantez içinde olduğu için OR operatörü ||, AND operatöründen && önce değerlendirilir. Bu, önce miktarı 5’in üzerinde olan veya kredi kartıyla ödenen satış siparişlerinin filtrelendiği, ardından kadın müşterilere ait siparişlerin filtrelendiği anlamına gelir. 

İlişkili tablolar arasında COUNTIF()

Birden fazla tabloyla çalışıyorsanız, RELATEDTABLE() işlevini kullanarak diğer tabloda sağlanan bir koşula göre kayıt sayımını yapmak için COUNTROWS() veya COUNTA() da kullanabilirsiniz. 

RELATEDTABLE() işlevi, tablolar arasındaki bire bir veya bire çok olabilen model ilişkisini dikkate alır.

Aynı süpermarket satış verisini kullanan Sales2 adlı başka bir satış tablosuna sahip olduğumuzu ve Sales ile Sales2’nin Invoice ID ile ilişkili olduğunu varsayalım. 

Sales ve Sales2 tabloları arasındaki ilişkiyi gösteren görsel.

Sales ve Sales2 tablosu arasındaki ilişki. Görsel: Yazar.

Sales’ta Customer type sütunu olmadığını, ancak Sales2’de bulunduğunu varsayarak kaç müşterinin üye olduğunu görmek için aşağıdaki DAX sözdizimini kullanabilirsiniz.

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

Üye olan müşterilerin verdiği toplam sipariş sayısını gösteren görsel

Üye olan müşterilerin sipariş sayısı. Görsel: Yazar.

  • RELATEDTABLE(Sales2)  Sales verisindeki aynı Invoice ID’ye sahip satırları içerecek şekilde Sales2’yi otomatik olarak filtreler..

  • FILTER() işlevi bunu yalnızca "Member" siparişleriyle daha da daraltır ve COUNTROWS() filtrelenmiş tabloyu sayar. 

Pratik Kullanım Senaryoları ve Entegrasyon İpuçları

Power BI COUNTIF() uygulaması için bazı pratik kullanım senaryoları ve entegrasyon ipuçları aşağıdadır.

Gerçek dünya senaryoları

Bir öğrenci sınav sonuçları veya siparişler tablonuz varsa, mükerrer kayıtların sayısını almak için COUNTROWS() ve FILTER() kullanabilirsiniz. Not sütunlarını kullanarak kaç öğrencinin geçtiğini veya kaldığını da sayabilirsiniz. Bir diğer önemli COUNTIF() muadili ise SUMX()’tir; koşula bağlı olarak öğrencilerin puanlarını toplamak için kullanabilirsiniz. 

Veri Entegrasyon Araçları

Analiz için dosyanızı her seferinde Excel veya Google Sheets’ten yüklemek yerine, veri çekmeyi otomatikleştirmek için Coupler.io gibi araçları kullanabilirsiniz. 

E-tablonuz güncellendiğinde, siz manuel yükleme yapmadan değişiklikler otomatik olarak Power BI panonuzda yansır. 

Bu, Power BI’ın her zaman en güncel veriyi yansıtmasını sağlar ve sizin içgörü üretmeye ve iş kararları almaya odaklanmanıza imkân verir. Ayrıca bu harici araçlarla birden çok kaynağı tek bir panoya bağlayabilirsiniz. 

Okunabilirlik ve performans için deneyimden ipuçları

Toplamadan önce satır düzeyinde yapılması gereken hesaplamalarda her zaman hesaplanan sütunları kullanın. Hesaplama kullanıcı tarafından seçilen filtre veya dilimleyiciye bağlıysa ya da satır düzeyi yerine toplu bir değere ihtiyaç varsa ölçü kullanabilirsiniz. 

Filtre bağlamını anlamak, ölçü mü yoksa hesaplanan sütun mu kullanılacağına karar vermenin anahtarıdır. Filtre bağlamı; dilimleyiciler, filtreler veya gruplama uygulandığında geçerlidir; satır bağlamı ise tablo satırı içinde geçerlidir. Hesaplanan sütunlar satır bağlamını kullanır ve gereksiz sütunlar oluşturarak bellek kullanımını artırabilir. 

Ölçüler oluştururken filtre bağlamını dikkate almak da önemlidir. Örneğin SUM(Sales[Amount]) yerine filtrelemeyi kontrol etmek için CALCULATE(SUM(Sales[Amount])) kullanın. Verinize zaten bir filtre uygulanmışsa, ilki doğru değeri vermez; ikincisi ise veriye uygulanan tüm filtreleri yok sayar. 

Ayrıca tek bir DAX ifadesinde FILTER() gibi çok sayıda yineleyici kullanmaktan kaçının; büyük veri kümelerinde satır satır çalıştıkları için yavaşlatırlar.

Sonuç

Excel’deki yerel COUNTIF() Power BI’da bulunmasa da, CALCULATE(), COUNTROWS(), COUNTA() ve FILTER() gibi DAX işlevleri bu işlevselliğin çoğaltılmasını mümkün kılar.

Seçeceğiniz yaklaşım verinizin doğasına bağlıdır. Eksik değerleriniz varsa COUNTA() kullanmayı düşünün; veriniz tam ise COUNTROWS() kullanabilirsiniz. Veriye uygulanan harici filtreleri hariç tutmak için CALCULATE() içinde ALLEXCEPT() kullandığınızdan emin olun.

Yazdığınız DAX sözdiziminin, panonuzdaki görsellerin ne kadar hızlı yükleneceğini belirlediğini unutmayın. Optimize edilmiş DAX yazmaya çalışın ve ölçü ile hesaplanan sütun kullanım zamanını iyi ayırt edin. İşte gelişmiş DAX tekniklerini keşfetmek için bazı DataCamp kaynakları. 


Adejumo Ridwan Suleiman's photo
Author
Adejumo Ridwan Suleiman
LinkedIn

Python, R ve makine öğrenmesi alanlarında uzmanlığa sahip, deneyimli veri bilimi eğitmeni ve Biyostatistikçi.

Power BI Countif() Soruları

Power BI’da yerel bir COUNTIF() işlevi var mı?

Power BI’da yerel bir COUNTIF() işlevi yoktur, ancak bunu Power BI’da uygulamanın çeşitli yolları vardır.

Power BI’da COUNTIF() uygulamak için hangi işlevler kullanılır?

Power BI COUNTIF() uygulaması için temel işlevler CALCULATE(), COUNTROWS(), COUNTA(), FILTER(), ALLEXCEPT() ve RELATEDTABLE()’dir. Veri modeline bağlı olarak, bu işlevleri Power BI’da COUNTIF()’i uygulamak için birleştirebilirsiniz.

COUNTROWS() ve COUNTA() arasındaki fark nedir?

COUNTROWS(), satırda geçerli kayıt olup olmadığına bakmaksızın verideki satır sayısını sayarken, COUNTA() bir sütundaki geçerli (boş olmayan) kayıtların sayısını verir.

Ölçüleri, hesaplanan sütunlara göre kullanmanın avantajı nedir?

Ölçüler daha verimlidir ve anlık olarak hesaplandıkları için fazla depolama kullanmaz; buna karşılık hesaplanan sütunlar verinin boyutunu artırarak depolama tüketir.

Power BI’da COUNTIF() uygulamasının pratik kullanım alanları nelerdir?

Power BI COUNTIF() uygulamasının; kayıtlarda koşullu sayımdan sayım temelli koşullu sütunlar oluşturmaya kadar pek çok kullanım alanı vardır.

Konular
Power BI
Veri Analizi

DataCamp ile Öğrenin

{count, plural, one {Kurs} other {Kurs}}

Power BI'de DAX'e Giriş

{hours} sa
186.7K
Hesaplanan sütunlar, tablolar ve ölçüler gibi Veri Analizi İfadelerinin (DAX) temellerini öğrenerek Power BI bilgilerinizi geliştirin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

{count, plural, one {blog} other {blog}}

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

{count, plural, one {blog} other {blog}}

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

{count, plural, one {Eğitim} other {Eğitim}}

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

{count, plural, one {Eğitim} other {Eğitim}}

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör