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