DAX işleçleri

Veri Çözümleme İfadesi (DAX) dili, değerleri karşılaştıran, aritmetik hesaplamalar yapan veya dizelerle çalışan ifadeler oluşturmak için işleçler kullanır.

İşleç türleri

Dört farklı hesaplama işleci türü vardır: aritmetik, karşılaştırma, metin birleştirme ve mantıksal.

Aritmetik işleçler

Toplama, çıkarma veya çarpma gibi temel matematiksel işlemleri gerçekleştirmek için; sayıları birleştirme; ve sayısal sonuçlar üretirken aşağıdaki aritmetik işleçleri kullanın.

Aritmetik işleç Anlamı Örnek
+ (artı işareti) Ekleme 3+3
– (eksi işareti) Çıkarma veya imzalama 3–1–1
* (yıldız işareti) Çarpma 3*3
/ (eğik çizgi) Bölüm 3/3
^ (şapka işareti) Üs 16^4

Not

Artı işareti hem ikili işleç hem de birli işleç olarak işlev görebilir. İkili işleç, işlecin her iki tarafında da sayı gerektirir ve toplama gerçekleştirir. İkili işlecin her iki tarafındaki bir DAX formülünde değerler kullandığınızda, DAX değerleri sayı değilse sayısal veri türlerine atamaya çalışır. Buna karşılık, tekli işleç herhangi bir bağımsız değişken türüne uygulanabilir. Artı simgesi türü veya değeri etkilemez ve yalnızca yoksayılırken, eksi işleci sayısal bir değere uygulanmışsa negatif bir değer oluşturur.

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

İki değeri aşağıdaki işleçlerle karşılaştırabilirsiniz. bu işleçler kullanılarak iki değer karşılaştırıldığında, sonuç DOĞRU veya YANLIŞ mantıksal bir değerdir.

Karşılaştırma işleci Anlamı Örnek
= Eşittir [Region] = "USA"
== Kesinlikle eşittir [Region] == "USA"
> Büyüktür [Satış Tarihi] > "Ocak 2009"
< Küçüktür [Satış Tarihi] < "1 Ocak 2009"
>= Büyüktür veya eşittir [Miktar] >= 20000
<= Küçüktür veya eşittir [Miktar] <= 100
<> Eşit değil [Bölge] <> "ABD"

== dışındaki tüm karşılaştırma işleçleri BLANK değerini 0 sayısı, boş dize "", TARİh(1899, 12, 30) veya YANLIŞ olarak değerlendirir. Sonuç olarak, [Column] = 0 değeri 0 veya BLANK olduğunda true olur. Buna karşılık, [Column] == 0 yalnızca [Column] değeri 0 olduğunda true olur.

Metin birleştirme işleci

Tek bir metin parçası oluşturmak üzere iki veya daha fazla metin dizesini birleştirmek veya birleştirmek için ve işareti (&) kullanın.

Metin işleci Anlamı Örnek
& (ve işareti) Tek bir sürekli metin değeri oluşturmak için iki değer Bağlan veya birleştirir [Bölge] & ", " & [Şehir]

Mantıksal işleçler

tek bir sonuç üretmek üzere ifadeleri birleştirmek için mantıksal işleçler (&) ve (||) kullanın.

Metin işleci Anlamı Örnekler
&(çift ve işareti) Her birinin Boole sonucuna sahip 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. ([Region] = "France") &&& ([BikeBuyer] = "yes"))
|| (çift boru simgesi) İki mantıksal ifade arasında bir OR koşulu oluşturur. İfadelerden biri DOĞRU döndürürse, sonuç DOĞRU olur; yalnızca her iki ifade de YANLIŞ olduğunda YANLIŞ sonucudur. (([Bölge] = "Fransa") || ([BikeBuyer] = "yes"))
IN Tabloyla karşılaştırıldığında her satır arasında bir mantıksal OR koşulu oluşturur. Not: Tablo oluşturucu söz diziminde küme ayraçları kullanılır. 'Product'[Color] IN { "Red", "Blue", "Black" }

İşleçler ve öncelik sırası

Bazı durumlarda hesaplamanın yapılma sırası Return değerini etkileyebilir; bu nedenle, sıranın nasıl belirlendiğini ve istenen sonuçları elde etmek için sırayı nasıl değiştirebileceğinizi anlamak önemlidir.

Hesaplama sırası

İfade, işleçleri ve değerleri belirli bir sırada değerlendirir. Tüm ifadeler her zaman eşittir işaretiyle (=) başlar. Eşittir işareti, başarılı karakterlerin bir ifade oluşturduğunu gösterir.

Eşittir işaretinin ardından, hesaplama işleçleriyle ayrılan hesaplanacak öğeler (işlenenler) bulunur. İfadeler her zaman soldan sağa okunur, ancak öğelerin gruplandırılma sırası parantezler kullanılarak bir dereceye kadar denetlenebilir.

İşleç önceliği

Birkaç işleci tek bir formülde birleştirirseniz, işlemler aşağıdaki tabloya göre sıralanır. İşleçler eşit öncelik değerine sahipse, soldan sağa sıralanır. Örneğin, bir ifade hem çarpma hem de bölme işleci içeriyorsa, bunlar soldan sağa ifadede göründükleri sırayla değerlendirilir.

Operator Açıklama
^ Üs
İmzala (–1'de olduğu gibi)
*Ve/ Çarpma ve bölme
+ ve – Toplama ve çıkarma
& Bağlan iki metin dizesidir (birleştirme)
=,==,,<,>,<=,>=,,<>IN Karşılaştırma
NOT NOT (birli işleç)

Hesaplama sırasını denetlemek için parantez kullanma

Değerlendirme sırasını değiştirmek için önce formülün hesaplanması gereken bölümünü parantez içine almanız gerekir. Örneğin, çarpma toplamadan önce hesaplandığından aşağıdaki formül 11 üretir. Formül 2'yi 3 ile çarpar ve ardından sonucta 5 ekler.

=5+2*3  

Buna karşılık, söz dizimini değiştirmek için ayraç kullanırsanız, sıra 5 ve 2 birlikte eklenecek şekilde değiştirilir ve sonuç 21 üretmek için 3 ile çarpılır.

=(5+2)*3  

Aşağıdaki örnekte, formülün ilk bölümünün etrafındaki ayraçlar hesaplamayı önce ifadeyi (3 + 0.25) değerlendirmeye ve ardından sonucu ifadenin sonucuna bölmeye zorlar(3 - 0.25) .

=(3 + 0.25)/(3 - 0.25)  

Aşağıdaki örnekte, üstelleştirme işleci önce işleçler için öncelik kurallarına göre uygulanır ve ardından işaret işleci uygulanır. Bu ifadenin sonucu -4'dür.

=-2^2  

İşaret işlecinin önce sayısal değere uygulandığından emin olmak için, aşağıdaki örnekte gösterildiği gibi işleçleri denetlemek için parantez kullanabilirsiniz. Bu ifadenin sonucu 4'dür.

= (-2)^2  

Uyumluluk

DAX, Microsoft Excel gibi çeşitli veri türlerini kolayca işler ve karşılaştırır. Bununla birlikte, temel alınan hesaplama altyapısı SQL Server Analysis Services'i temel alır ve tarih ve saat türleri için daha zengin destek de dahil olmak üzere ilişkisel veri deposunun ek gelişmiş özelliklerini sağlar. Bu nedenle, bazı durumlarda hesaplamaların sonuçları veya işlevlerin davranışı Excel'dekiyle aynı olmayabilir. Ayrıca DAX, Excel'den daha fazla veri türünü destekler. Bu bölümde önemli farklar açıklanmaktadır.

İşlenenlerin veri türlerini zorlama

Genel olarak, herhangi bir işlecin sol ve sağ tarafındaki iki işlenen aynı veri türü olmalıdır. Ancak, veri türleri farklıysa, DAX bazı durumlarda işleci uygulamak için bunları ortak bir veri türüne dönüştürür:

  1. her iki işlenen de mümkün olan en büyük ortak veri türüne dönüştürülür.
  2. mümkünse işleç uygulanır.

Örneğin, birleştirmek istediğiniz iki sayı olduğunu varsayalım. =gibi[Price] * .20 bir formülden bir sayı elde edilir ve sonuç birçok ondalık basamak içerebilir. Diğer sayı, dize değeri olarak sağlanan bir tamsayıdır.

Bu durumda DAX, her iki sayı türünü de depolayan en büyük sayısal biçimi kullanarak her iki sayıyı da sayısal biçimde gerçek sayılara dönüştürür. Ardından DAX çarpmayı uygular.

Veri türü bileşimine bağlı olarak, karşılaştırma işlemleri için tür zorlaması uygulanamayabilir. DAX tarafından desteklenen veri türlerinin tam listesi için bkz . Tablosal modellerde desteklenen veri türleri ve Power BI Desktop'ta veri türleri.

Tamsayı, Gerçek Sayı, Para Birimi, Tarih/saat ve Boş karşılaştırma amacıyla sayısal olarak kabul edilir. Karşılaştırma yapılırken Boş değeri sıfır olarak değerlendirilir. Karşılaştırma işlemleri için aşağıdaki veri türü bileşimleri desteklenir.

Sol Taraftaki Veri Türü Sağ Taraf Veri Türü
Sayısal Sayısal
Boolean Boolean
String String

Diğer karma veri türü karşılaştırmaları bir hata döndürür. Örneğin, ="1" > 0 gibi bir formül, DAX karşılaştırma işlemlerinin Metin türünde değerleri Tamsayı türünde değerlerle karşılaştırmayı desteklemediğini belirten bir hata döndürür.

DAX'ta kullanılan Veri Türleri Excel'de kullanılan Veri Türleri
Sayılar (I8, R8) Sayılar (R8)
String String
Boolean Boolean
DateTime Varyant
Currency Currency

Öncelik sırası farklılıkları

DAX formüllerindeki işlemlerin öncelik sırası temelde Microsoft Excel tarafından kullanılanla aynıdır, ancak yüzde gibi bazı Excel işleçleri desteklenmez. Ayrıca, aralıklar desteklenmez.

Bu nedenle, Excel'den formül kopyalayıp yapıştırdığınızda, formüllerdeki bazı işleçler veya öğeler geçerli olmadığından formülü dikkatle gözden geçirmeyi unutmayın. İşlemlerin hangi sırada gerçekleştirildiği konusunda herhangi bir şüphe olduğunda, işlemlerin sırasını denetlemek ve sonuçla ilgili belirsizliği kaldırmak için parantezler kullanmanız önerilir.

DAX söz dizimi
DAX parametre adlandırma