Работа с колони с формули
Колоните с формули са колони, които показват изчислена стойност в таблица на Microsoft Dataverse. Използване на формули Power Fx, мощен, но удобен за хората език за програмиране. Изградете формула в колона с формула на Dataverse по същия начин, по който бихте изградили формула Microsoft Excel. Докато пишете, Intellisense предлага функции и синтаксис и дори ви помага да коригирате грешки.
Добавяне на колона с формули
Влезте в Power Apps на адрес https://make.powerapps.com.
Изберете Таблици и след това изберете таблицата, в която искате да добавите колона с формула. Ако елементът не е в страничния панел, изберете …Още и след това изберете желания елемент.
Изберете зоната Колони и след това изберете Нова колона.
Въведете следната информация:
- Показвано име за колоната.
- По желание въведете Описание на колоната.
За Тип данни изберете fx Формула.
Въведете формулата или използвайте предложения за формули:
Въведете формулата Power Fx в полето Формула . Повече информация: Въведете формула
- Изберете допълнителни свойства:
- Изберете Възможност за търсене, ако искате тази колона да е налична в изгледи, диаграми, табла и разширено търсене.
- Разширени опции:
- Ако формулата се оценява на десетична стойност, разгънете Разширени опции, за да промените броя на точките на точност между 0 и 10. Стойността по подразбиране е 2.
- Изберете Записване.
Въведете формула
Следващият пример създава колона с формула, наречена Обща цена. Колоната Брой единици е тип данни цяло число. Колоната Цена е десетичен тип данни.
Колоната с формула показва резултата от Цена умножено по Брой единици.
Въведената формула определя типа на колоната. Не можете да промените типа на колоната, след като тя е създадена. Това означава, че можете да промените формулата, след като сте създали колоната, само ако тя не променя типа на колоната.
Например формулата цена * отстъпка създава тип колона с числа. Можете да промените цената * отстъпка на цена * (отстъпка + 10%), защото това не променя типа на колоната. Не можете обаче да промените цена * отстъпка на Текст(цена * отстъпка), защото това ще изисква промяна на типа на колоната на низ.
Получаване на предложения за формули (преглед)
[Тази тема е предварителна версия на документацията и подлежи на промяна.]
Опишете какво искате да направи формулата и получете резултати, генерирани от AI. Предложенията за формули приемат въведените от вас естествен език за интерпретиране и предлагат Power Fx формула, използваща базиран на GPT модел на изкуствен интелект.
Важно
Това е функция за преглед, достъпна само в регионите на САЩ.
Функциите за предварителен преглед не са предназначени за производствена употреба и може да са с ограничена функционалност. Тези функции са достъпни преди официалното издание, за да могат клиентите да получат ранен достъп и да дадат обратна връзка.
В момента се поддържат предложения за формули, които препращат към една таблица. Предложения за формули, които препращат към колона в свързана таблица, не се поддържат.
Предварителни изисквания
За да активирате тази функция, трябва да активирате настройката на среда на AI предложения за колони с формули. Повече информация: AI предложения за колони с формули
Пример за въвеждане на естествен език
Представете си, че има колона "Оценка на клиента", която показва оценката им по профил.
В полето Получаване на предложения за формули въведете формулата на естествен език, като например Ако оценката в колоната за оценка е равна или по-голяма от 5, тогава посочете като Добра, а ако по-малко от 5 – като Средна и ако стойността е празна или нула, тогава се покаже като Лоша, след което изберете бутона със стрелка (enter).
След това копирайте предложената формула.
И го поставете в полето Въведете формула . Изберете Записване.
Ето как изглежда формулата при поставяне.
Switch(
ThisRecord.'Customer Rating',
Blank(), "Bad",
0, "Bad",
1, "Average",
2, "Average",
3, "Average",
4, "Average",
5, "Good",
6, "Good",
7, "Good",
8, "Good",
9, "Good",
10, "Good"
)
Проверете изчислената колона с формула за описание на оценката, която се показва така.
Отговорен AI
За информация относно отговорния ИИ посетете тези ресурси:
- Често задавани въпроси за изграждане на приложения и таблици чрез разговор
- Често задавани въпроси относно отговорното използване на AI в Power Apps
Оператори
Можете да използвате следните оператори в колона с формула:
+, -, *, /, %, in, exactin, &
За повече информация отидете на Оператори в Power Apps.
Типове данни
Можете да показвате следните типове данни в колона с формула:
- Текстово съобщение
- Десетично число
- Избор Да/Не (булево)
- Datetime
- Цяло число
Понастоящем не се поддържат типовете данни за валута и избор (по-рано набори от опции).
Видове функции
Можете да използвате следните типове функции в колона с формула:
- Десетично число
- String
- Boolean
- Набор от опции
- Дата и час (TZI)
- DateTime (локално за потребителя) (ограничено до сравнения с други потребителски локални стойности на функциите DateAdd и DateDiff)
- DateTime (само дата) (ограничено до сравнения с други стойности само за дата, функции DateAdd и DateDiff)
- Валута
- Цяло число, повишено до десетично
Функции
За скаларните функции, които можете да използвате в колона с формули, отидете на Препратка към формула - Dataverse колони с формула.
* Функциите Текст и Стойност работят само с цели числа, където не е включен десетичен разделител. Десетичният разделител варира в различните локали. Тъй като колоните с формули се оценяват без познаване на локала, няма начин правилно да се интерпретира или генерира десетичният разделител.
* Аргументът StartOfWeek не се поддържа за функциите WeekNum и Weekday в колони с формули.
Пример за функция
Описание | Пример |
---|---|
Извличане на стойност на дата. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Създаване на десетична колона с формули
Създайте колона с формула, която връща десетично число.
- Когато създавате колона, въведете следната информация:
- Показвано име за колоната.
- По желание въведете Описание на колоната.
- За Тип данни изберете fx Формула.
- Въведете формула, която връща числова стойност в лентата с формули . Този пример създава колона с формула, наречена Обща сума. Колоната "единична цена " е от десетичен тип данни.
- Разгънете Разширени опции, изберете Десетична запетая като тип данни Формула и след това задайте необходимия брой цифри след десетичната запетая.
- Изберете Записване.
Създаване на колона с формула за цяло число
Създайте колона с формула, която връща цяло число.
- Когато създавате колона, въведете следната информация:
- Показвано име за колоната.
- По желание въведете Описание на колоната.
- За Тип данни изберете fx Формула.
- Въведете формула, която връща числова стойност в лентата с формули . Този пример създава колона с формула, наречена Брой единици. Колоните "Обща цена " и "Цена на единична цена " са от десетичен тип данни.
- Разгънете Разширени опции и изберете Цяло число като тип данни Формула и задайте необходимия формат за колона с цяло число.
- Изберете Записване.
Насоки и ограничения
Този раздел описва указанията и известните ограничения с колоните с формули Dataverse.
Валидиране на използването на валутни полета
- Колоните с формули не поддържат използването на свързана графична колона за валута на таблицата във формулата, като например в този пример.
- Прякото използване на графите за валута и валутния курс във формулата понастоящем не се поддържа. Използването на колони за валута и валутен курс се постига чрез
Decimal
функцията, като напримерDecimal(currency column)
илиDecimal(exchange rate)
. ФункциятаDecimal
гарантира, че изходът е в рамките на приетия диапазон. Ако стойността на колоната за валута или валутен курс надвишава приетия диапазон, тогава формулата връща null. - Графите за основна валута не се поддържат в изразите на колоните с формули, тъй като са системни графи, използвани за целите на отчитането. Ако искате подобен резултат, можете да използвате тип колона за валута заедно с комбинация от графи за валутен курс като
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Проверка на използването на колоните за дата и час
- Поведението на колоните с формули за дата и час може да се актуализира само когато не се използва в друга колона с формула.
- За колони с формули за дата и час, докато използвате
DateDiff
функцията, се уверете, че:- Колоната за локално поведение на потребителя не може да се сравнява или използва с колона
DateTime(TZI)/DateOnly
за поведение. - Колоните за локално поведение на потребителя могат да се сравняват или използват само с друга колона за локално поведение на потребителя.
DateTime(TZI)
Колоните за поведение могат да се сравняват или използват въвDateDiff
функции с другаDateTime(TZI)/DateOnly
колона за поведение.DateOnly
колоните за поведение могат да се сравняват или използват във функцията DateDiff с другаDateTime(TZI)/DateOnly
колона за поведение.
- Колоната за локално поведение на потребителя не може да се сравнява или използва с колона
- Колоните за дата и час и датата не
UTCNow()
Now()
могат да бъдат предадени като параметър на низови функции.
Използване на колона с формули в сборни полета
- Проста колона с формула е мястото, където формулата използва колони от един и същ запис или използва твърдо кодирани стойности. За сборни колони колоните с формули трябва да са прости колони с формули, като например тази примерна сборна колона.
- Колона с формула, която зависи от функциите
UTCNow()
, обвързани с времето, иUTCToday()
не може да се използва в сборно поле.
Power Fx Препоръки за текстова функция
Колоните с формули не поддържат
Text()
функции с един аргумент от тип Number. Числото може да бъде цяло, десетично или валутно.Колоните с формули не поддържат използването на числа в следните конфигурации:
- В низови функции. Това са низови функции, поставени навсякъде, където се очаква текстов аргумент: Горна, Долна, Лява, Дясна, Конкатенация, Средна, Лен, StartsWith, EndsWith, TrimEnds, Изрязване, Замена и Заместване.
- В имплицитните формули, като
12 & "foo"
или,12 & 34
или"foo" & 12
. - Вътрешна принуда от номер към текст не се поддържа. Препоръчваме ви да използвате
Text(Number, Format)
за преобразуване на число в текст. В случай, чеString
аргументът е подаден във функцияText
, тогава аргументътFormat
не се поддържа. - Ето пример за използване на
Text
функцията за преобразуване на число в текст и добавяне на низ към него:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Специфични за езиковата променлива маркери за форматиране, като например "." и "," не се поддържат в колоните с формули.
Валидиране на диапазони в колони с формули
- Не можете да зададете свойствата Минимална стойност или Максимална стойност на колона с формула.
- Всички вътрешни изчисления трябва да са в диапазона Dataverse за колони с формули от десетичен тип (-100000000000 до 100000000000).
- Твърдо кодирана литерална стойност, въведена в лентата с формули, трябва да се намира в диапазона Dataverse .
- Ако има числова колона, която е нула, тогава тя се счита за 0 в междинната операция. Например,
a+b+c and If a = null, b=2, c=3
тогава колоната с формула дава0 + 2 + 3 = 5
.- Това поведение е различно от изчисляемите колони в този случай, тъй като изчисляемите колони дават
null + 2 + 3 = null
.
- Това поведение е различно от изчисляемите колони в този случай, тъй като изчисляемите колони дават
Общи проверки на колони с формули
- Колоните с формули могат да препращат към други колони с формули, но колоната с формула не може да препраща към себе си.
- Колоните с формули не поддържат циклични вериги, като например
F1 = F2 + 10, F2 = F1 * 2
. - Максималната дължина на израза на формула в колоните с формули е 1,000 знака.
- Максималната дълбочина, разрешена в колоните с формули, е 10. Дълбочината се определя като верига от колони с формули, препращащи към други колони за формули или сборни колони.
- Например,
table E1, F1 = 1*2, table E2, F2 - E1*2
. В този пример дълбочината на F2 е 1.
- Например,
- В приложенията, управлявани от модел, сортирането е забранено на:
- Колона с формула, която съдържа колона от свързана таблица.
- Колона с формула, която съдържа логическа колона (например колона с адрес).
- Колона с формула, която съдържа друга изчисляема колона или колона с формула.
- Колона с формула, която използва функция, обвързана
UTCNow()
с времето.
- Колони от тип "Цяло число" с формат "Език", "Продължителност", "Часова зона" не се поддържат в колоните с формули.
- Колони от тип Низ с формат Имейл, Текстова област, Символ на тикер, URL адрес не се поддържат в колони с формули.
- Колоните с формули не показват стойности, когато приложението е в мобилен офлайн режим.
- Не можете да задействате работни потоци или добавки за колони с формули.
- Не препоръчваме да използвате изчисляеми колони в колони с формули и обратно.
- Откриване на дублиращ се запис не се задейства в графите с формули.
- Функцията
Now
може да се използва с колони с формули.Now()
има локално поведение на потребителя иUTCNow()
има поведение, независимо от часовата зона. - Можете да зададете свойството за точност за десетични колони.
- Стойността на типа данни по формула по подразбиране е зададена на Десетична за числова стойност, връщаща формули.
- Актуализирането на формата на колоната с формула за цяло число не се поддържа.
Power Fx функции, които не се поддържат в момента
- Степенуване
- Sqrt
- Exp
- Ln
- ^ (оператор)
Колони с формули с типове данни, които не могат да бъдат създадени
- Възможности за избор (с изключение на избор "Да/Не")
- Валута