Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Types of operators
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.
Arithmetic operator | Anlam | Örnek |
---|---|---|
+ (artı işareti) |
İlave | 3+3 |
- (eksi işareti) |
Subtraction or sign | 3-1-1 |
* (yıldız işareti) |
Multiplication | 3*3 |
/ (forward slash) |
Division | 3/3 |
^ (caret) |
Exponentiation | 16^4 |
Note
The plus sign can function both as a binary operator and as a unary operator. İ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, eğer değerler sayısal değilse, bunları 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 FALSE
mantıksal bir değerdir.
Karşılaştırma işleci | Anlam | Örnek |
---|---|---|
= |
Equal to | [Region] = "USA" |
== |
Strict equal to | [Region] == "USA" |
> |
Greater than | [Satış Tarihi] > "Ocak 2009" |
< |
Daha az | [Satış Tarihi] < "1 Ocak 2009" |
>= |
Greater than or equal to | [Amount] >= 20000 |
<= |
Less than or equal to | [Amount] <= 100 |
<> |
Eşit değil | [Region] <> "USA" |
== 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
Use the ampersand (&
) to join, or concatenate, two or more text strings to produce a single piece of text.
Metin işleci | Anlam | Örnek |
---|---|---|
& (ampersand) |
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 |
---|---|---|
&& (double ampersand) |
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. Note: the table constructor syntax uses curly braces. | '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.
Following the equal sign are the elements to be calculated (the operands), which are separated by calculation operators. İfadeler her zaman soldan sağa okunur, ancak öğelerin gruplandırılma sırası parantezler kullanılarak bir dereceye kadar denetlenebilir.
Operator precedence
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 |
---|---|
^ |
Exponentiation |
– |
İşaret (–1 gibi) |
* ve / |
Multiplication and division |
+ ve – |
Toplama ve çıkarma |
& |
İki metin dizesini bağlar (birleştirme) |
=,==,<,>,<=,>=,<>,IN |
Karşılaştırma |
NOT |
NOT (unary operator) |
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.
Coercing data types of operands
In general, the two operands on the left and right sides of any operator should be the same data type. 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:
- Both operands are converted to the largest possible common data type.
- The operator is applied, if possible.
Ö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ü |
---|---|
Numeric | Numeric |
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ü 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) |
String | String |
Boolean | Boolean |
DateTime | Variant |
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. Also, ranges are not supported.
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.