Можете да използвате функциите DVar и DVarP , за да оцените дисперсията на набор от стойности в зададен набор от записи (домейн). Използвайте функциите DVar и DVarP в модул на Visual Basic for Applications (VBA), макрос, израз на заявка или изчисляема контрола във формуляр или отчет.
Използвайте функцията DVarP , за да оцените дисперсията в генералната съвкупност, и функцията DVar , за да оцените дисперсията в извадка от генералната съвкупност.
Например можете да използвате функцията DVar , за да изчислите дисперсията в набор от тестови резултати на ученици.
Синтаксис
DVar(expr; domain [; criteria] )
DVarP(expr; domain [, criteria] )
Функциите DVar и DVarP имат следните аргументи:
| Аргумент | Описание |
|---|---|
| израз | Задължително. Израз, който идентифицира числовото поле, в което искате да намерите дисперсията. Това може да бъде низов израз, идентифициращ поле от таблица или заявка, или израз, който извършва изчисление върху данните в това поле. В expr можете да включите полето за име в таблица, контрола на формуляр, константа или функция. Ако expr съдържа функция, тя може да бъде вградена или дефинирана от потребителя, но не и друга агрегатна функция на домейн или SQL агрегатна функция. Всяко поле, включено в израз, трябва да бъде числово поле. |
| domain | Задължителен. Низов израз, идентифициращ набора от записи, който съставлява домейна. Това може да бъде името на таблица или името на заявка за заявка, която не изисква параметър. |
| criteria | Незадължително. Низов израз, използван за ограничаване на диапазона от данни, върху които се изпълнява функцията DVar или DVarP . Например критерий често е еквивалентен на клаузата WHERE в SQL израза, без думата WHERE. Ако критерият е пропуснат, функциите DVar и DVarP изчисляват израза спрямо целия домейн. Всяко поле, което е включено в критериите , трябва да бъде също и поле в домейн; в противен случай функциите DVar и DVarP връщат Null. |
Забележки
Ако домейн препраща към по-малко от два записа или ако по-малко от два записа удовлетворяват на критериите, функциите DVar и DVarP връщат Null, което показва, че дисперсия не може да бъде изчислена.
Независимо дали ще използвате функцията DVar , или DVarP в макрос, модул, израз на заявка, или изчисляема контрола, трябва да създадете внимателно аргумента критерий , за да сте сигурни, че ще се изчислява правилно.
Можете да използвате функциите DVar и DVarP , за да зададете критерии в реда за критерии на заявка за избиране, в израз за изчисляемо поле на заявка или в реда Update To на заявка за актуализиране.
Забележка
Можете да използвате функциите DVar и DVarP или функциите Var и VarP в израз за изчисляемо поле в заявка за общи суми. Ако използвате функцията DVar или DVarP , стойностите се изчисляват, преди данните да бъдат групирани. Ако използвате функцията Var или VarP , данните се групират, преди стойностите в израза за полето да бъдат изчислени.
Използвайте функциите DVar и DVarP в изчисляема контрола, когато трябва да зададете критерии за ограничаване на диапазона от данни, върху които се изпълнява функцията. Например за да покажете дисперсия за поръчките, които ще бъдат изпратени за Калифорния, задайте следния израз за свойството "ControlSource " на текстово поле:
=DVar("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Ако просто искате да намерите стандартното отклонение за всички записи в домейна, използвайте функцията Var или VarP .
Забележка
Незаписаните промени в записите в домейна не се включват, когато използвате тези функции. Ако искате функцията DVar или DVarP да се базира на променените стойности, трябва първо да запишете промените, като щракнете върху "Съхрани записа" под "Записи" в раздела "Данни", преместите фокуса към друг запис или използвате метода "Актуализация".
Пример за заявка
| Израз | Резултати |
|---|---|
| SELECT DVar("единична цена";"продуктПродажби";"единична цена>140") AS DVar_Value, DVarP("единична цена";"продуктПродажби";"единична цена<140") AS DVarP_Value FROM productSales GROUP BY DVar("единична цена";"продуктПродажби";"единична цена>140"), DVarP("единична цена";"продуктПродажби";"единична цена<140"); | Изчислява дисперсията на "Единична цена" от таблицата "Продажби_продукти", където "единична цена" е по-голямо от 140, и показва резултата в DVar_Value. Също така изчислява дисперсията на "Единична цена" (като се имат предвид дадените данни като цялата генерална съвкупност), където "единична цена" е по-малко от 140, и показва резултатите в DVarP_Value. |
Примери на VBA
Забележка
Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.
Следващият пример връща оценки за дисперсията за генерална съвкупност и извадка от генералната съвкупност за поръчките, изпратени за Обединеното кралство. Домейнът е таблицата "Поръчки". Аргументът критерий ограничава получения набор от записи до тези, за които ShipCountryRegion е равно на "Великобритания".
Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DVar("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DVarP("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
Следващият пример връща оценки, като използва променлива strCountryRegion, в аргумента критерий . Забележете, че в низовия израз са включени единични кавички ('), така че когато низовете се съединят, низовият литерал UK ще бъде ограден с единични кавички.
Dim strCountryRegion As String
Dim dblX As Double
strCountryRegion = "UK"
dblX = DVar("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & "'")