Типове данни в модели на данни

Всяка колона в модела на данни има свързани типове данни, указващи типа данни, които колоната може да съдържа: цели числа, десетични числа, текст, парични данни, дати и часове и т.н. Типът данни също определя какви операции може да се извършват в колоната и колко памет е необходима за съхранение на стойностите в колоната.

Ако използвате добавката Power Pivot, може да промените типа данни на колоната. Може да е необходимо да го направите, когато колона с дати е импортирана като низ, а искате да бъде нещо друго. За по-подробна информация вж. Задаване на типа данни на колона в Power Pivot.

В тази статия

Обобщение на типовете данни

Табличен тип данни

Преобразуване на неявни и явни типове данни във формули DAX

Таблица на неявните преобразувания на данни

Събиране (+)

Изваждане (-)

Умножение (*)

Деление (/)

Оператори за сравнение

Обработване на празни стойности, празни низове и нулеви стойности

Обобщение на типовете данни

Тази таблица показва типове данни, поддържани в даден модел на данни. Когато импортирате данни или използвате дадена стойност във формула, дори и първоначалният източник на данни да съдържа различен тип данни, данните се преобразуват в един от тези типове данни. Стойностите, които са получени от формули, също използват тези типове данни.

Типове данни в Excel

Типове данни в DAX

Описание

Цяло число

64-битова (осем битова) целочислена стойност 1, 2

Числа, които нямат полета след десетичния знак. Целите числа могат да бъдат положителни или отрицателни, но трябва да бъдат цели числа между -9,223,372,036,854,775,808 (-2^63) и 9,223,372,036,854,775,807 (2^63-1).

Десетично число

64-битово (осем битово) реално число 1, 2

Реалните числа са числа, които могат да имат полета след десетичния знак. Реалните числа имат широк обхват от стойности:

Отрицателни стойности от -1.79E +308 до -2.23E -308

Нула

Положителни стойности от 2.23E -308 до 1.79E + 308

Броят значещи цифри обаче е ограничен до 15 цифри след десетичния знак.

ИСТИНА/НЕИСТИНА

Булев

Стойността трябва да е true или false.

Текст

Низ

Низ от данни със символи Unicode. В даден текстов формат може да се представят низове, цифри или дати.

Максималната дължина на низа е 268 435 456 символа Unicode (256 мега символа) или 536 870 912 байта.

Дата

Дата/час

Дати и часове в приет израз на дата-час.

Валидни дати са всички дати след 1 януари 1900.

Валута

Валута

Типът данни на валута позволява стойности от -922 337 203 685 477,5808 до 922 337 203 685 477,5807 с фиксирана прецизност четири цифри след десетичната запетая.

Няма

Празно

Празната стойност е тип данни в DAX, която представлява и замества нули SQL. Може да създадете празна стойност, като използвате функцията BLANK, и да проверявате за празни стойности, като използвате логическата функция ISBLANK.

1 Формулите DAX не поддържат типове данни по-малки от тези, показани в таблицата.

2 Ако се опитате да импортирате данни с много високи цифрови стойности, може да възникне следната грешка при импортирането:

Грешка в паметта на базата данни: колоната '<име на колона>' на таблицата '<име на таблица>' съдържа стойност – '1.7976931348623157e+308', която не се поддържа. Операцията е отменена.

Тази грешка възниква, защото Power Pivot използва тази стойност, за да представя празни стойности. Стойностите в този списъка са синонимни на празната стойност:

Стойност

9223372036854775807

-9223372036854775808

1,7976931348623158e+308

2,2250738585072014e-308

Премахнете стойността от данните ви и опитайте да импортирате пак.

Табличен тип данни

DAX използва табличен тип данни в много функции, като например агрегирания и изчисления за интелигентно време. Някои функции изискват препратка към таблица, а други функции връщат таблица, която после може да се използва като входни данни за други функции. В някои функции, които изискват таблица като входни данни, може да укажете израз, който се оценява като таблица. За други функции се изисква препратка към основна таблица. За информация относно изискванията на конкретни функции вж. Препратка към функциите на DAX.

Преобразуване на неявни и явни типове данни във формули DAX

Всяка функция DAX има специфични изисквания относно типа данни, използвани като входни и изходни. Например някои функции изискват цели числа за някои аргументи и дати за други, докато други функции изискват текст или таблици.

Ако данните в колоната, които указвате като аргумент, са несъвместими с типа данни, изисквани от функцията, в много случаи DAX ще върне грешка. Но там, където е възможно, DAX ще се опита да преобразува неявно данните в изисквания тип. Например:

  • Може да въведете дата като низ, а DAX ще анализира низа и ще се опита да го преобразува в един от форматите на Windows за дата и час.

  • Може да добавите TRUE + 1 и да получите резултат 2, защото TRUE неявно се преобразува в цифрата 1, след което се изпълнява операцията 1+1.

  • Ако добавите стойности в две колони и една от тях е представена като текст ("12"), а другата като цифра (12), DAX неявно преобразува низа в цифра, а после извършва събирането, за да се получи цифров резултат. Следният израз връща 44: = "22" + 22

  • Ако се опитате да съедините две числа, Excel ще ги представи като низове, а после ще ги съедини. Следният израз връща "1234": = 12 & 34

Тази таблица обобщава неявното преобразуване на типа данни, извършвано във формули. Excel извършва неявни преобразувания, когато е възможно, според изискванията на указаната операция.

Таблица на неявните преобразувания на данни

Извършеният тип преобразуване се определя от оператора, който преобразува стойностите, които са му необходими, преди да извърши изискваната операция. Тези таблици показват операторите и указват преобразуването, извършено върху всеки тип данни в колоната, когато са сдвоени с типа данни в пресичащия се ред.

Забележка : Текстовите типове данни не са включени в тези таблици. Когато дадено число е представено в текстови формат, в някои случаи Power Pivot ще се опита да определи типа на числото и да го представи като число.

Допълнение (+)

Оператор (+)

INTEGER

CURRENCY

REAL

Дата/час

INTEGER

INTEGER

CURRENCY

REAL

Дата/час

CURRENCY

CURRENCY

CURRENCY

REAL

Дата/час

REAL

REAL

REAL

REAL

Дата/час

Дата/час

Дата/час

Дата/час

Дата/час

Дата/час

Например ако се използва реално число в операция за събиране в комбинация с данни на валута, и двете стойности се преобразуват в REAL, а резултатът се връща като REAL.

Изваждане (-)

В тази таблица заглавката на реда е умаляемото (лява страна), а заглавката на колоната е умалителят (дясна страна).

Оператор (-)

INTEGER

CURRENCY

REAL

Дата/час

INTEGER

INTEGER

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

REAL

Дата/час

Дата/час

Дата/час

Дата/час

Дата/час

Например ако се използва дата в операция по изваждане с друг тип данни, и двете стойности се преобразуват в дати и върнатата стойност също е дата.

Забележка :  Моделите на данни също поддържат унарен оператор, – (отрицателен), но този оператор не променя типа данни на операнда.

Умножение (*)

Оператор (*)

INTEGER

CURRENCY

REAL

Дата/час

INTEGER

INTEGER

CURRENCY

REAL

INTEGER

CURRENCY

CURRENCY

REAL

CURRENCY

CURRENCY

REAL

REAL

CURRENCY

REAL

REAL

Например ако цяло число е комбинирано с реално число в операция по умножение, и двете числа се преобразуват в реални числа и върнатата стойност също е REAL.

Деление (/)

В тази таблица заглавката на реда е числителят, а заглавката на колоната е знаменателят.

Оператор (/)

(Ред/Колона)

INTEGER

CURRENCY

REAL

Дата/час

INTEGER

REAL

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

REAL

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

Дата/час

REAL

REAL

REAL

REAL

Например ако цяло число е комбинирано със стойност на валута в операция по деление, и двете стойности се преобразуват в реални числа и резултатът също е реално число.

Оператори за съпоставяне

В изрази за съпоставяне булевите стойности се смятат за по-големи от стойностите на низовете, а стойностите на низовете се смятат за по-големи от цифровите или дата/час стойности. Стойностите на числата и дата/час се смята, че са с еднаква оценка. За булевите или низови стойности не се извършват неявни преобразувания. BLANK или празна стойност се преобразува в 0/""/false в зависимост от типа данни на другата съпоставена стойност.

Следните изрази DAX илюстрират този режим на работа:

=If(FALSE()>"true";"Изразът е истина";"Изразът е неистина") връща "Изразът е истина"

=If("12">12;"Изразът е истина";"Изразът е неистина") връща "Изразът е истина".

=If("12"=12;"Изразът е истина";"Изразът е неистина") връща "Изразът е неистина"

Извършва се неявно преобразуване на цифров тип или тип дата/час, както е описано в тази таблица:

Оператори за съпоставяне

INTEGER

CURRENCY

REAL

Дата/час

INTEGER

INTEGER

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

REAL

Дата/час

REAL

REAL

REAL

Дата/час

Най-горе на страницата

Обработване на празни стойности, празни низове и нулеви стойности

В DAX нула, празна стойност, празна клетка или липсваща стойност се представят от един и същи нов тип стойност – BLANK. Може също да генерирате празни стойности, като използвате функцията BLANK, или да проверявате за празни стойности, като използвате функцията ISBLANK.

Обработката на празни стойности в операции, като например събиране или съединяване, зависи от конкретната функция. Тази таблица обобщава разликите между формулите на DAX и Microsoft Excel по отношение на метода на обработка на празни стойности.

Израз

DAX

Excel

BLANK + BLANK

BLANK

0 (нула)

BLANK +5

5

5

BLANK * 5

BLANK

0 (нула)

5/BLANK

Безкрайност

Грешка

0/BLANK

NaN

Грешка

BLANK/BLANK

BLANK

Грешка

FALSE ИЛИ BLANK

FALSE

FALSE

FALSE И BLANK

FALSE

FALSE

TRUE ИЛИ BLANK

TRUE

TRUE

TRUE И BLANK

FALSE

TRUE

BLANK ИЛИ BLANK

BLANK

Грешка

BLANK И BLANK

BLANK

Грешка

За по-подробна информация относно начина на обработка на празни стойности от конкретна функция или оператор прегледайте отделните теми за всяка функция DAX в раздела Справка за функциите DAX.

Най-горе на страницата

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×