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
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 FALSE
mantı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 0 sayısına eşit, boş dize "", DATE(1899, 12, 30) veya FALSE
olarak davranır. Sonuç olarak, [Column] = 0 değeri 0 veya BLANKolduğ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 TRUE döndürürse, ifadelerin birleşimi de TRUE döndürür; aksi takdirde 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 TRUE döndürürse sonuç TRUE olur; yalnızca her iki ifade de FALSE olduğunda sonuç FALSE . |
(([Region] = "France") || ([BikeBuyer] = "yes")) |
IN |
Bir tabloyla karşılaştırıldığında her satır arasında mantıksal bir 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.
=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 zorlar ve ardından sonucu ifadenin sonucuna böler (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 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:
- her iki işlenen de mümkün olan en büyük ortak veri türüne dönüştürülür.
- İşleç, mümkünse uygulanır.
Örneğin, birleştirmek istediğiniz iki sayı olduğunu varsayalım. =[Price] * .20
gibi 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.
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'de 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üllerdeki 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.