Veri Modeli'nde her sütunda, sütunun barındırabileceği veri türünü belirten ilişkili bir veri türü vardır: tam sayılar, ondalık sayılar, metin, parasal veriler, tarihler ve saatler vb. Veri türü, sütunda ne tür işlemler yapabileceğinizi ve değerleri sütunda depolamak için ne kadar bellek gerekeceğini de belirler.
Power Pivot eklentisini kullanıyorsanız sütunun veri türünü değiştirebilirsiniz. Bir tarih sütunu dize olarak içeri aktarıldıysa ancak başka bir şey olması gerekiyorsa bunu yapmanız gerekebilir. Daha fazla bilgi için bkz. Power Pivot bir sütunun veri türünü ayarlama .
Bu makalenin başlıkları
Veri türlerinin özeti
Aşağıdaki tabloda Veri Modeli'nde desteklenen veri türleri listelenmektedir. Verileri içeri aktardığınızda veya formüldeki bir değeri kullandığınızda, özgün veri kaynağı farklı bir veri türü içerse bile, veriler bu veri türlerinden birine dönüştürülür. Formüllerden kaynaklanan değerler de bu veri türlerini kullanır.
Excel'de veri türü |
DAX'ta veri türü |
Açıklama |
---|---|---|
Tam Sayı |
64 bit (sekiz bayt) tamsayı değeri 1, 2 |
Ondalık basamak içermeyen sayılar. Tamsayılar pozitif veya negatif sayılar olabilir, ancak -9.223.372.036.854.775.808 (-2^63) ve 9.223.372.036.854.775.807 (2^63-1) arasında tamsayılar olmalıdır. |
Ondalık Sayı |
64 bit (sekiz bayt) gerçek sayı 1, 2 |
Gerçek sayılar, ondalık basamakları olabilecek sayılardır. Gerçek sayılar çok çeşitli değerleri kapsar: -1,79E +308 ile -2,23E -308 arasında negatif değerler Sıfır 2,23E -308 ile 1,79E + 308 arasında pozitif değerler Ancak, anlamlı basamak sayısı 15 ondalık basamakla sınırlıdır. |
DOĞRU/YANLIŞ |
Boole |
Doğru veya Yanlış değeri. |
Metin |
Dize |
Unicode karakter veri dizesi. Metin biçiminde temsil edilen dizeler, sayılar veya tarihler olabilir. Dize uzunluğu üst sınırı 268.435.456 Unicode karakter (256 mega karakter) veya 536.870.912 bayttır. |
Tarih |
Tarih/saat |
Kabul edilen tarih-saat gösterimindeki tarihler ve saatler. Geçerli tarihler, 1 Ocak 1900'e kadar olan tüm tarihlerdir. |
Para Birimi |
Para Birimi |
Para birimi veri türü- 922.337.203.685.477.5808 ile 922.337.203.685.477.5807 arasındaki değerlerin sabit duyarlıklı dört ondalık basamakla birlikte olmasını sağlar. |
Yok |
Boş |
Boş, DAX'ta SQL null değerlerini temsil eden ve değiştiren bir veri türüdür. BLANK işlevini kullanarak boş değer oluşturabilir ve ISBLANK mantıksal işlevini kullanarak boşlukları test edebilirsiniz. |
1 DAX formülleri, tabloda listelenenlerden daha küçük veri türlerini desteklemez.
2 Çok büyük sayısal değerlere sahip verileri içeri aktarmaya çalışırsanız içeri aktarma işlemi aşağıdaki hatayla başarısız olabilir:
Bellek içi veritabanı hatası: '<tablo adı>' tablosunun '<sütun adı>' sütunu, desteklenmeyen '1.7976931348623157e+308' değerini içeriyor. İşlem iptal edildi.
Bu hata, Power Pivot null değerleri temsil etmek için bu değeri kullandığından oluşur. Aşağıdaki listede yer alan değerler null değerin eş anlamlılarıdır:
Değer |
|
---|---|
9223372036854775807 |
|
-9223372036854775808 |
|
1,7976931348623158e+308 |
|
2.2250738585072014e-308 |
Değeri verilerinizden kaldırın ve içeri aktarmayı yeniden deneyin.
Tablo Veri Türü
DAX, toplamalar ve akıllı zaman gösterimi hesaplamaları gibi birçok işlevde tablo veri türü kullanır. Bazı işlevler bir tabloya başvuru gerektirir; diğer işlevler daha sonra diğer işlevlere giriş olarak kullanılabilecek bir tablo döndürür. Giriş olarak tablo gerektiren bazı işlevlerde, tablo olarak değerlendirilen bir ifade belirtebilirsiniz; bazı işlevler için temel tablo başvurusu gereklidir. Belirli işlevlerin gereksinimleri hakkında bilgi için bkz. DAX İşlev Başvurusu.
DAX formüllerinde örtük ve açık veri türü dönüştürme
Her DAX işlevinin giriş ve çıkış olarak kullanılan veri türlerine özgü gereksinimleri vardır. Örneğin, bazı işlevler bazı bağımsız değişkenler için tamsayılar ve diğerleri için tarihler gerektirir; diğer işlevler için metin veya tablo gerekir.
Bağımsız değişken olarak belirttiğiniz sütundaki veriler işlevin gerektirdiği veri türüyle uyumlu değilse, DAX birçok durumda hata döndürür. Ancak, mümkün olan her yerde DAX verileri örtük olarak gerekli veri türüne dönüştürmeyi dener. Örneğin:
-
Bir tarihi dize olarak yazabilirsiniz ve DAX dizeyi ayrıştırır ve Windows tarih ve saat biçimlerinden biri olarak atamaya çalışır.
-
TRUE + 1'i ekleyip 2 sonucunu alabilirsiniz çünkü TRUE örtük olarak 1 sayısına dönüştürülür ve 1+1 işlemi gerçekleştirilir.
-
İki sütuna değer eklerseniz ve bir değer metin ("12") ve diğeri sayı (12) olarak temsil edilirse, DAX dizeyi örtük olarak bir sayıya dönüştürür ve ardından sayısal sonuç için toplamayı yapar. Aşağıdaki ifade 44 döndürür: = "22" + 22
-
İki sayıyı birleştirmeye çalışırsanız, Excel bunları dize olarak gösterir ve sonra birleştirir. Aşağıdaki ifade "1234" döndürür: = 12 & 34
Aşağıdaki tabloda, formüllerde gerçekleştirilen örtük veri türü dönüştürmeleri özetlenir. Excel, belirtilen işlemin gerektirdiği şekilde mümkün olduğunda örtük dönüştürmeler gerçekleştirir.
Örtük Veri Dönüştürmeleri Tablosu
Gerçekleştirilen dönüştürme türü, istenen işlemi gerçekleştirmeden önce gereken değerleri yayınlayan işleç tarafından belirlenir. Bu tablolar işleçleri listeler ve kesişen satırdaki veri türüyle eşleştirildiğinde sütundaki her veri türünde gerçekleştirilen dönüştürmeyi gösterir.
Not: Metin veri türleri bu tablolara dahil değildir. Bir sayı metin biçiminde gösterildiğinde, bazı durumlarda Power Pivot sayı türünü belirlemeye ve sayı olarak temsil etmeye çalışır.
Toplama (+)
İşleç (+) |
INTEGER |
CURRENCY |
REAL |
Tarih/saat |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
Tarih/saat |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
Tarih/saat |
REAL |
REAL |
REAL |
REAL |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Örneğin, bir toplama işleminde para birimi verileriyle birlikte gerçek bir sayı kullanılırsa, her iki değer de GERÇEK'e dönüştürülür ve sonuç GERÇEK olarak döndürülür.
Çıkarma (-)
Aşağıdaki tabloda satır üst bilgisi minuend (sol taraf) ve sütun başlığı ise çıkarılmış (sağ taraf) olur.
İşleç (-) |
INTEGER |
CURRENCY |
REAL |
Tarih/saat |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Tarih/saat |
Örneğin, çıkarma işleminde başka bir veri türüyle bir tarih kullanılıyorsa, her iki değer de tarihe dönüştürülür ve dönüş değeri de tarih olur.
Not: Veri modelleri birli işlecini de destekler, - (negatif), ancak bu işleç işlenenin veri türünü değiştirmez.
Çarpma (*)
İşleç (*) |
INTEGER |
CURRENCY |
REAL |
Tarih/saat |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
Örneğin, bir tamsayı bir çarpma işleminde gerçek bir sayıyla birleştirilirse, her iki sayı da gerçek sayılara dönüştürülür ve dönüş değeri de GERÇEK olur.
Bölme (/)
Aşağıdaki tabloda satır üst bilgisi payda, sütun başlığı ise paydadır.
İşleç (/) (Satır/Sütun) |
INTEGER |
CURRENCY |
REAL |
Tarih/saat |
---|---|---|---|---|
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Tarih/saat |
REAL |
REAL |
REAL |
REAL |
Örneğin, bir tamsayı bir bölme işleminde para birimi değeriyle birleştirilirse, her iki değer de gerçek sayılara dönüştürülür ve sonuç da gerçek bir sayıdır.
Karşılaştırma işleçleri
Karşılaştırma ifadelerinde Boole değerleri dize değerlerinden büyük, dize değerleri ise sayısal veya tarih/saat değerlerinden büyük olarak kabul edilir; sayıların ve tarih/saat değerlerinin aynı dereceye sahip olduğu kabul edilir. Boole veya dize değerleri için örtük dönüştürmeler yapılmaz; BLANK veya boş bir değer, karşılaştırılan diğer değerin veri türüne bağlı olarak 0/""/false değerine dönüştürülür.
Aşağıdaki DAX ifadeleri bu davranışı gösterir:
=EĞER(FALSE()>"true","İfade true", "İfade yanlış"), "İfade true" döndürür
=EĞER("12">12,"İfade true", "İfade yanlış"), "İfade true" değerini döndürür.
=EĞER("12"=12,"İfade doğru", "İfade yanlış"), "İfade yanlış" değerini döndürür
Dönüştürmeler, aşağıdaki tabloda açıklandığı gibi sayısal veya tarih/saat türleri için örtük olarak gerçekleştirilir:
Karşılaştırma İşleci |
INTEGER |
CURRENCY |
REAL |
Tarih/saat |
---|---|---|---|---|
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
Tarih/saat |
REAL |
REAL |
REAL |
Tarih/saat |
Boşlukları, boş dizeleri ve sıfır değerlerini işleme
DAX'ta null, boş değer, boş hücre veya eksik bir değerin tümü aynı yeni değer türü olan BLANK ile temsil edilir. Ayrıca BLANK işlevini kullanarak boşluk oluşturabilir veya ISBLANK işlevini kullanarak boşlukları test edebilirsiniz.
Toplama veya birleştirme gibi işlemlerde boşlukların nasıl işlenme şekli tek tek işleve bağlıdır. Aşağıdaki tabloda DAX ile Microsoft Excel formülleri arasındaki farklar, boşlukların işlenme şekliyle özetlenmiştir.
Expression |
DAX |
Excel |
---|---|---|
BLANK + BLANK |
BOŞ |
0 (sıfır) |
BLANK +5 |
5 |
5 |
BOŞ * 5 |
BOŞ |
0 (sıfır) |
5/BOŞ |
Sonsuzluk |
Hata |
0/BOŞ |
Nan |
Hata |
BOŞ/BOŞ |
BOŞ |
Hata |
YANLIŞ VEYA BOŞ |
FALSE |
FALSE |
FALSE VE BLANK |
FALSE |
FALSE |
DOĞRU VEYA BOŞ |
DOĞRU |
DOĞRU |
DOĞRU VE BOŞ |
YANLIŞ |
DOĞRU |
BOŞ VEYA BOŞ |
BOŞ |
Hata |
BOŞ VE BOŞ |
BOŞ |
Hata |
Belirli bir işlevin veya işlecin boşlukları nasıl işlediğiyle ilgili ayrıntılar için DAX İşlev Başvurusu bölümünde her DAX işlevinin tek tek konu başlıklarına bakın.