Функции DStDev и DStDevP можно использовать для оценки стандартного отклонения по набору значений в указанном наборе записей (домене). Используйте функции DStDev и DStDevP в модуле Visual Basic для приложений (VBA), макросе, выражении запроса или вычисляемом элементе управления в форме или отчете.
Функция StDevP оценивает генеральную совокупность, а StDev — выборку из генеральной совокупности.
Например, можно воспользоваться функцией DStDev для расчета стандартного отклонения в наборе оценок по тестам.
Синтаксис
DStDev(expr, domain [, criteria] )
DStDevP(expr, domain [, criteria] )
Функции DStDev и DStDevP принимают следующие аргументы:
| Аргумент | Описание |
|---|---|
| выражение | Обязательный аргумент. Выражение, определяющее числовое поле, для которого требуется найти стандартное отклонение. Это может быть строковое выражение, определяющее поле из таблицы или запроса, или выражение, которое выполняет вычисление данных в этом поле. В выражение можно включить имя поля таблицы, элемента управления формы, константы или функции. Если выражение выражает включает функцию, она может быть либо встроенной, либо определяемой пользователем, но не может быть агрегатной функции по подмножеству или агрегатной функции SQL. |
| подмножество | Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
| условия | — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, для которого выполняется функция DStDev или DStDevP . Например, условие часто эквивалентно предложению WHERE в выражении SQL, но без слова WHERE. Если условие опущено, функции DStDev и DStDevP оценивают выражение для всего домена. Любое поле, включенное в условие , также должно быть полем в домене; в противном случае функции DStDev и DStDevP будут возвращать значение Null. |
Замечания
Если домен ссылается на менее чем две записи или если менее двух записей удовлетворяют критериям, функции DStDev и DStDevP возвращают значение Null, что указывает на то, что стандартное отклонение не может быть вычислено.
Независимо от того, используете ли вы функции DStDev или DStDevP в макросе, модуле, выражении запроса или вычисляемом элементе управления, необходимо тщательно конструировать аргумент условия , чтобы обеспечить его правильную оценку.
Функцию DStDev или DStDevP можно использовать для задания условий в строке "Условия" запроса на выборку. Например, можно создать запрос для таблиц Orders ("Заказы") и Products ("Товары"), чтобы вывести все товары, для которых цена доставки поднялась выше суммы средней цены и стандартного отклонения. Строка условий, находящаяся ниже поля Freight ("Доставка"), будет содержать следующее выражение:
>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))
Функции DStDev и DStDevP можно использовать в вычисляемом поле запроса или в строке "Обновление в" запроса на обновление.
Примечание
В вычисляемом выражении итогового запроса можно использовать функции DStDev и DStDevP или функции StDev и StDevP . При использовании функций DStDev или DStDevP значения вычисляются до группировки. Если используются функции StDev или StDevP , данные группируются перед оценкой значений выражения поля.
Функцию DStDev или DStDevP можно использовать в вычисляемом элементе управления, если требуется указать условия для ограничения диапазона данных, к которым она применяется. Например, чтобы вывести стандартное отклонение для заказов, отправляемых в Калифорнию, задайте для свойства поля Данные следующее выражение:
=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Если вы просто хотите найти стандартное отклонение для всех записей в домене, используйте функцию StDev или StDevP .
Совет Если тип данных поля, из которого получен оператор, является числом, функции DStDev и DStDevP возвращают тип данных Double. Если функция DStDev или DStDevP используется в вычисляемом элементе управления, для повышения производительности включите в выражение функцию преобразования типа данных.
Примечание
Несохраненные изменения записей в подмножестве не учитываются при использовании этих функций. Если вы хотите, чтобы функция DStDev или DStDevP учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку Сохранить запись в разделе Записи на вкладке Данные, переместив фокус на другую запись или используя метод Update.
Примеры запросов
| Выражение | Результаты |
|---|---|
| SELECT DStDev("unitprice","productSales","unitprice>140") AS Expr1, DStDevP("unitprice","productSales","unitprice<140") AS Expr2 FROM productSales GROUP BY DStDev("unitprice","productSales","unitprice>140"), DStDevP("unitprice","productSales","unitprice<140"); | Вычисляет Standard отклонение значения "ЦенаЗа единицу" (с учетом данных, приведенных в качестве выборки) от таблицы "ПродажиТовара", где значение "Цена" больше 140, и отображает результат в выражении 1. Также вычисляет Standard отклонение "UnitPrice" (рассматривая данные как всю генеральную совокупность), где "UnitPrice" меньше 140, и отображает результаты в Expr2. |
| SELECT DStDev("unitprice","productSales","unitprice>140") AS DstDev, DStDevP("unitprice","productSales","unitprice<140") AS DstDevP FROM productSales GROUP BY DStDev("unitprice","productSales","unitprice 140"), DStDevP("unitprice","productSales","unitprice><140"); | Вычисляет Standard отклонения значения "ЦенаЕдиницу" (с учетом данных, приведенных в качестве выборки) от таблицы "ПродажиТовара", где значение "цена" больше 140, и отображает результат в формате "Отклонение от нормы". Также вычисляет Standard отклонение "UnitPrice" (рассматривая данные как всю генеральную совокупность), где "UnitPrice" меньше 140, и отображает результаты в DstDevP. |
Пример VBA
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
В следующем примере возвращаются оценки стандартного отклонения для генеральной совокупности и выборки для заказов, отправленных в Великобританию. Подмножеством является таблица "Заказы" (Orders). Аргумент условия ограничивает результирующий набор записей записями, для которых поле ShipCountryRegion имеет значение "Литва".
Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DStDev("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DStDevP("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
В следующем примере те же оценки вычисляются с использованием переменной strCountryRegion, в аргументе условия . Обратите внимание, что в строковое выражение включаются одинарные кавычки ('), так что при сцеплении строк строковый литерал UK будет заключен в одинарные кавычки.
Dim strCountryRegion As String
Dim dblX As Double
Dim dblY As Double
strCountryRegion = "UK"
dblX = DStDev("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & "'")
dblY = DStDevP("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & "'")