İngilizce dilinde oku

Aracılığıyla paylaş


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 operatörler

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) İlave 3+3
- (eksi işareti) Çıkarma veya işaret 3-1-1
* (yıldız işareti) Çarpma 3*3
/ (eğik çizgi) Bölüm 3/3
^ (şapka işareti) Üs Alma 16^4

Not

Artı işareti hem ikili işleç hem debirli 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ında bir DAX formülünde değerler kullandığınızda, DAX değerleri sayı değilse sayısal veri türlerine dönüştürmeye çalışır. Buna karşılık, ünary işleç herhangi bir argüman türüne uygulanabilir. Artı simgesi türü veya değeri etkilemez ve göz ardı edilir; oysa eksi işleci, sayısal bir değere uygulanırsa 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ç TRUE veya FALSEmantıksal bir değerdir.

Karşılaştırma işleci Anlam Örnek
= Eşittir [Region] = "ABD"
== Tam eşittir [Region] == "USA"
> Büyüktür [Satış Tarihi] > "Ocak 2009"
< Daha az [Satış Tarihi] < "1 Ocak 2009"
>= Büyüktür veya eşittir [Tutar] >= 20000
<= Küçük veya eşittir [Tutar] <= 100
<> Eşit değil [Region] <> "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 FALSEolarak 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ğeri bağlar veya birleştirir [Region] & ", " & [City]

Mantıksal işleçler

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

Metin işleci Anlam Örnekler
&&(çift et işareti) Her birinin Boole sonucuna sahip iki ifade arasında bir AND koşulu oluşturur. her iki ifade de TRUEdöndürürse, ifadelerin birleşimi de TRUEdöndürür; aksi takdirde birleşim FALSEdöndürür. ([Region] = "France") && ([BikeBuyer] = "yes"))
|| (çift boru simgesi) İki mantıksal ifade arasında bir OR koşulu oluşturur. İfadelerden biri TRUEdöndürürse sonuç TRUEolur; yalnızca her iki ifade de FALSE olduğunda sonuç FALSE. (([Region] = "France") || ([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 parantezleri 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, ardından gelen 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 dizilir. Ö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.

Operatör Açıklama
^ Üs alma
İşaret (–1 gibi)
* ve / Çarpma ve bölme
+ ve Toplama ve çıkarma
& İki metin dizesini bağlar (birleştirme)
=,==,<,>,<=,>=,<>,IN Karşılaştırma
NOT NOT (tekli işlemci)

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.

DAX
=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.

DAX
=(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 zorlar ve ardından sonucu ifadenin sonucuna böler (3 - 0.25).

DAX
=(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.

DAX
=-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.

DAX
= (-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 zorlayarak dönüştürme

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. İşleç, mümkünse uygulanır.

Örneğin, birleştirmek istediğiniz iki sayı olduğunu varsayalım. =[Price] * .20gibi 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. Power BI Desktoptablosal modellerde desteklenen veri türleri ve 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
Dizgi Dizgi

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ü değerleri ile Tamsayıtüründe değerleri 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)
Dizgi Dizgi
Boolean Boolean
TarihSaat Varyant
Para birimi Para birimi

Ö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