DAX işleçlerini kullanma

Tamamlandı

DAX formülleriniz, aritmetik hesaplamalar yapan, değerleri karşılaştıran, dizelerle çalışan veya koşulları test eden ifadeler oluşturmak için işleçleri kullanabilir.

İpucu

Çoğu DAX işlecinin çalışma şekli ve öncelik sıralaması Excel'deki işlevlerle aynıdır.

Aritmetik işleçler

Aşağıdaki tabloda aritmetik işleçler listelenmiştir.

İşleç Açıklama
+ Toplama
- Çıkarma
* Çarpma
/ Bölme
^ Üs

İki ifadeyi bölerken payda sıfır veya BLANK döndürebileceğinden DAX işlevini kullanmanın DIVIDE daha verimli ve daha güvenli olduğunu unutmayın.

Karşılaştırma işleçleri

Aşağıdaki tabloda iki değeri karşılaştırmak için kullanılan karşılaştırma işleçleri listelenmiştir. Sonuç TRUE veya FALSE olur.

İşleç Açıklama
= Eşittir
== Kesinlikle eşittir
> Büyüktür
< Küçüktür
>= Büyük veya eşittir
<= Küçüktür veya eşittir
<> Eşit değildir

Kesinlikle eşittir (==) dışındaki tüm karşılaştırma işleçleri, BLANK değerini sıfır, boş dize (""), 30 Aralık 1899 tarihi veya FALSE olarak kabul eder. Değeri sıfır veya BLANK olduğunda ifadenin [Revenue] = 0[Revenue] TRUE olacağı anlamına gelir. Buna karşılık, [Revenue] == 0 yalnızca değeri [Revenue] sıfır olduğunda TRUE olur.

Metin birleştirme işleci

İki metin değerini bağlayarak veya birleştirerek kesintisiz bir metin değeri oluşturmak için ve (&) karakterini kullanabilirsiniz. Örneğin aşağıdaki hesaplanmış sütun tanımını inceleyin:

Model Color = 'Product'[Model] & "-" & 'Product'[Color]

Mantıksal işleçler

Tek bir sonuç oluşturan ifadeleri birleştirmek için mantıksal işleçleri kullanabilirsiniz. Aşağıdaki tabloda tüm mantıksal işleçler listelenmiştir.

İşleç Açıklama
&& Her biri bir Boole sonucuna sahip olan iki ifade arasında bir AND koşulu oluşturur. İki ifadenin de TRUE döndürmesi halinde ifadelerin birleşimi de TRUE döndürür, aksi halde birleşim FALSE döndürür.
|| (çift boru) İki mantıksal ifade arasında bir OR koşulu oluşturur. İfadelerden biri TRUE değerini döndürürse sonuç TRUE olur; sonucun FALSE olması için iki ifadenin de FALSE değerini döndürmesi gerekir.
IN Tabloyla karşılaştırılan her bir satır arasında mantıksal OR koşulu oluşturur. Not: Tablo oluşturucu söz dizimi küme ayracı kullanır.
NOT Bir Boole ifadesinin durumunu tersine çevirir (FALSE ise TRUE, TRUE ise FALSE yapar).

Mantıksal işleci kullanan IN bir örnek, DAX işlevini kullanarak CALCULATE iki ülkenin belirli bir filtresini uygulayan ANZ Revenue ölçüsü tanımıdır: Avustralya ve Yeni Zelanda.

Not

Filtre bağlamını değiştirmeyi öğrendiğiniz zaman güçlü CALCULATE işlevle tanıştırılacaksınız.

ANZ Revenue =
CALCULATE(
    [Revenue],
    Customer[Country-Region] IN {
        "Australia",
        "New Zealand"
    }
)

İşleç önceliği

DAX formülünüzde birden çok işleç olduğunda DAX, işleç önceliği olarak bilinen değerlendirme sırasını belirlemek için kurallar kullanır. İşlemler aşağıdaki tabloya göre sıralanır.

İşleç Açıklama
^ Üs olarak gösterme
- İşaret (-1 gibi)
* ve / Çarpma ve bölme
NOT NOT
+ ve - Toplama ve çıkarma
& İki metin dizesinin birleştirilmesi
=,==,,<>,<=,>=,<> Karşılaştırma

İşleçler eşit öncelik değerine sahip olduğunda, soldan sağa sıralanır.

Operatör önceliği temelde Excel'dekiyle aynıdır. Değerlendirme sırasını geçersiz kılmak isterseniz parantez kullanarak işlemleri gruplandırın.

Örneğin aşağıdaki hesaplanmış sütun tanımını inceleyin:

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * 1 - [Unit Price Discount Pct]

Çarpma işlemi çıkarma işleminden önce yapıldığından bu basit hesaplanmış sütun tanımı hatalı bir sonuç döndürür. Aşağıdaki hesaplanmış sütun tanımında çıkarma işlemlerinin çarpma işlemlerinden önce gerçekleşmesini sağlamak için parantez kullanılmıştır.

Extended Amount = Sales[Order Quantity] * Sales[Unit Price] * (1 - [Unit Price Discount Pct])

İpucu

Özellikle DAX'ı kullanmaya yeni başlayanlar için operatör öncelik kurallarını hatırlamak zor olabilir. Bu nedenle formüllerinizi ayrıntılı bir şekilde test etmeniz önerilir. Hatalı değerlendirme sırası nedeniyle formüller doğru sonucu döndürmediğinde parantez ekleyerek değerlendirme sırasını düzenleyebilirsiniz. Ayrıca formüllerinizin okunabilirliğini artırmak için de parantez ekleyebilirsiniz.

DAX işleçleri ve öncelik sırası hakkında daha fazla bilgi için bkz. DAX işleçleri.

Örtük dönüştürme

Farklı veri türlerini birleştirmek için işleçlerin kullanıldığı bir DAX formülü yazdığınızda türleri açıkça dönüştürmeniz gerekmez. DAX genellikle belirtilen işlemleri tamamlamak için gerekli olduğunda başvurulan model nesnelerinin veri türlerini otomatik olarak tanımlar ve örtük dönüştürme işlemleri gerçekleştirir.

Ancak başarıyla dönüştürülebilecek değerlerle ilgili bazı sınırlamalar söz konusu olabilir. Değerlerden veya sütunlardan biri geçerli işlemle uyumsuz olan bir veri türüne sahip olduğunda DAX hata döndürür. Örneğin bir tarih değerini çarpmak mantıklı olmadığından hata döndürür.

BLANK, kullanılan işlecine bağlı olarak farklı şekilde işlenir. Excel'in BLANK değerini işlemesine benzer şekilde ancak veritabanlarının (SQL) NULL değerini işlemesinden farklı bir şekilde işlenir. BLANK, aritmetik işleçler tarafından kullanıldığında sıfır, bir dizeyle birleştirildiğinde ise boş dize olarak kabul edilir.

İpucu

Özellikle DAX'ı kullanmaya yeni başlayanlar için BLANK Değerinin nasıl işlendiğini hatırlamak zor olabilir. Bu nedenle formüllerinizi ayrıntılı bir şekilde test etmeniz önerilir. BLANK'ler beklenmeyen sonuçlar oluşturduğunda IF BLANK için test etmek için ve ISBLANK DAX işlevlerini kullanmayı ve ardından uygun bir şekilde yanıt vermeyi göz önünde bulundurun.