Функции DVar и DVarP можно использовать для оценки дисперсии в наборе значений в указанном наборе записей (домене). Используйте функции DVar и DVarP в модуле Visual Basic для приложений (VBA), макросе, выражении запроса или вычисляемом элементе управления в форме или отчете.
Функция DVarP используется для оценки дисперсии генеральной совокупности, а функция DVar — для оценки дисперсии выборки из генеральной совокупности.
Например, можно воспользоваться функцией DVar для расчета дисперсии в наборе оценок по тестам.
Синтаксис
DVar(expr, domain [, условие] )
DVarP(expr, domain [, criteria] )
Функции DVar и DVarP принимают следующие аргументы:
| Аргумент | Описание |
|---|---|
| выражение | Обязательный аргумент. Выражение, определяющее числовое поле, для которого требуется найти дисперсию. Это может быть строковое выражение, определяющее поле из таблицы или запроса, или выражение, которое выполняет вычисление данных в этом поле. В качестве примера можно включить поле имени в таблицу, элемент управления формы, константу или функцию. Если выражение выражает включает функцию, она может быть либо встроенной, либо определяемой пользователем, но не может быть агрегатной функции по подмножеству или агрегатной функции SQL. Все поля, включаемые в выражение , должны быть числовыми. |
| подмножество | Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
| условия | — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, с которыми выполняется функция DVar или DVarP . Например, условие часто эквивалентно предложению WHERE в выражении SQL, но без слова WHERE. Если условие опущено, функции DVar и DVarP вычисляют выражение для всего домена. Любое поле, включенное в условие , также должно быть полем в домене; в противном случае функции DVar и DVarP возвращают значение Null. |
Замечания
Если домен ссылается на менее чем две записи или хотя бы две записи удовлетворяют условиям, функции DVar и DVarP возвращают значение Null, указывающее, что дисперсия не может быть вычислена.
Независимо от того, используется ли функция DVar или DVarP в макросе, модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно конструировать аргумент условия , чтобы обеспечить его правильное вычисление.
Вы можете использовать функцию DVar или DVarP, чтобы указать условия в строке Условие отбора запроса, в выражении вычисляемого поля в запросе или в строке Обновление в запросе на обновление.
Примечание
В выражении вычисляемого поля итогового запроса можно использовать функции DVar и DVarP или VarP и VarP. При использовании функций DVar или DVarP значения вычисляются перед группировкой данных. Если используются функции Var или VarP , данные группируются перед оценкой значений в выражении поля.
Используйте функции DVar и DVarP в вычисляемом элементе управления, когда необходимо задать условия для ограничения диапазона данных, для которых выполняется функция. Например, чтобы вывести дисперсию для заказов, отправляемых в Калифорнию, задайте для свойства поля Данные следующее выражение:
=DVar("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Если вы просто хотите найти стандартное отклонение во всех записях в домене, используйте функцию Var или VarP .
Примечание
При использовании этих функций несохраненные изменения, внесенные в записи в домене , не учитываются. Если вы хотите, чтобы функция DVar или DVarP учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку Сохранить запись в разделе Записи на вкладке Данные, переместив фокус на другую запись или используя метод Update.
Пример запроса
| Выражение | Результаты |
|---|---|
| SELECT DVar("unitprice","productSales","unitprice>140") AS DVar_Value, DVarP("unitprice","productSales","unitprice<140") AS DVarP_Value FROM productSales GROUP BY DVar("unitprice","productSales","unitprice>140"), DVarP("unitprice","productSales","unitprice<140"); | Вычисляет дисперсию "ЦенаЗа единицу" из таблицы "ПродажиТовара", где "Цена" больше 140, и отображает результат в DVar_Value. Также вычисляет дисперсию "UnitPrice" (рассматривая данные как всю генеральную совокупность), где "UnitPrice" меньше 140, и отображает результаты в DVarP_Value. |
Примеры VBA
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В этом примере возвращаются оценки дисперсии по генеральной совокупности и по выборке для заказов, отправленных в Великобританию. Подмножеством является таблица "Заказы" (Orders). Аргумент "условие условия" ограничивает результирующий набор записей записями, для которых 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 & "'")