È possibile usare le funzioni DStDev e DStDevP per stimare la deviazione standard in un set di valori in un set di record specificato (un dominio). Usare le funzioni DStDev e DStDevP in un modulo Visual Basic, Applications Edition (VBA), una macro, un'espressione di query o un controllo calcolato in una maschera o un report.
La funzione StDevP valuta una popolazione, mentre la funzione DStDev valuta un campione di popolazione.
È ad esempio possibile usare la funzione DStDev in un modulo per calcolare la deviazione standard in un set di punteggi dei test degli studenti.
Sintassi
DStDev(expr, domain [, criteria] )
DStDevP(expr; domain [, criteria] )
Le funzioni DStDev e DStDevP hanno gli argomenti seguenti:
| Argomento | Descrizione |
|---|---|
| espressione | Obbligatorio. Espressione che identifica il campo numerico di cui si vuole trovare la deviazione standard. Può trattarsi di un'espressione stringa che identifica un campo da una tabella o una query oppure può essere un'espressione che esegue un calcolo sui dati contenuti in quel campo. In espressione è possibile includere il nome di un campo in una tabella, un controllo in una maschera, una costante o una funzione. Se espressione include una funzione, questa può essere incorporata o definita dall'utente, ma non un'altra funzione di aggregazione di dominio o di aggregazione SQL. |
| dominio | Obbligatorio. Un'espressione di stringa che identifica il set di record che costituisce il dominio. Può essere un nome di una tabella o di una query che non richiede un parametro. |
| criteri | Facoltativo. Espressione stringa usata per limitare l'intervallo di dati su cui viene eseguita la funzione DStDev o DStDevP. Ad esempio, criteri è spesso equivalente alla clausola WHERE in un'espressione SQL, senza la parola WHERE. Se criteri vengono omessi, le funzioni DStDev e DStDevP valutano l'espressione rispetto all'intero dominio. Qualsiasi campo incluso nei criteri deve essere anche un campo nel dominio; In caso contrario, le funzioni DStDev e DStDevP restituiranno un valore Null. |
Osservazioni
Se dominio fa riferimento a meno di due record o se meno di due record soddisfano i criteri, le funzioni DStDev e DStDevP restituiscono un valore Null, che indica che non è possibile calcolare una deviazione standard.
Se si usa la funzione DStDev o DStDevP in una macro, un modulo, un'espressione di query o un controllo calcolato, è necessario costruire l'argomento criteri con attenzione per assicurarsi che venga valutato correttamente.
È possibile usare le funzioni DStDev e DStDevP per specificare i criteri nella riga Criteri di una query di selezione. È ad esempio possibile creare una query su una tabella di ordini e una tabella di prodotti per visualizzare tutti gli ordini per i quali le spese di spedizione sono superiori alla media più la deviazione standard per le spese di spedizione. La riga dei criteri sotto al campo relativo alla spedizione conterrà l'espressione seguente:
>(DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))
È possibile usare le funzioni DStDev e DStDevP in un'espressione di campo calcolato di una query o nella riga Aggiorna a di una query di aggiornamento.
Nota
È possibile usare le funzioni DStDev e DStDevP o le funzioni StDev e StDevP in un'espressione di campo calcolato di una query di totalizzazione. Se si usa la funzione DStDev o DStDevP, i valori vengono calcolati prima che i dati vengano raggruppati. Se si usa la funzione StDev o StDevP, i dati vengono raggruppati prima che i valori nell'espressione con campi vengano valutati.
Usare le funzioni DStDev e DStDevP in un controllo calcolato quando è necessario specificare criteri per limitare l'intervallo di dati su cui viene eseguita la funzione. Per visualizzare, ad esempio, la deviazione standard per gli ordini da spedire in California, impostare la proprietà .OrigineControllo di una casella di testo sull'espressione seguente:
=DStDev("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Se si vuole semplicemente trovare la deviazione standard in tutti i record nel dominio, usare la funzione StDev o StDevP .
Suggerimento Se il tipo di dati del campo da cui è derivata espressione è un numero, le funzioni DStDev e DStDevP restituiscono un tipo di dati Double. Se si usa la funzione DStDev o DStDevP in un controllo calcolato, includere una funzione di conversione del tipo di dati nell'espressione per migliorare le prestazioni.
Nota
Le modifiche non salvate ai record in dominio non vengono incluse quando si usano queste funzioni. Se si vuole che la funzione DStDev o DStDevP sia basata sui valori modificati, è prima necessario salvare le modifiche facendo clic su Salva record in Record nella scheda Dati, spostando lo stato attivo su un altro record oppure usando il metodo Update.
Esempi di query
| Espressione | Risultati |
|---|---|
| SELECT DStDev("prezzounitario","productSales","prezzounitario>140") AS Expr1, DStDevP("prezzounitario","productSales","prezzounitario<140") AS Expr2 FROM productSales GROUP BY DStDev("prezzounitario","productSales","prezzounitario>140"), DStDevP("prezzounitario","productSales","prezzounitario<140"); | Calcola la deviazione standard di "PrezzoUnitario" (considerando i dati dati come campione) dalla tabella "VenditeProdotto" dove "prezzounitario" è maggiore di 140 e visualizza il risultato in Espressione1. Calcola anche la deviazione standard di "PrezzoUnitario" (considerando i dati specificati come l'intera popolazione) se "prezzounitario" è minore di 140 e visualizza i risultati in Espressione2. |
| SELECT DStDev("prezzounitario","productSales","prezzounitario>140") AS DstDev, DStDevP("prezzounitario","productSales","prezzounitario<140") AS DstDevP FROM productSales GROUP BY DStDev("prezzounitario","productSales","prezzounitario>140"), DStDevP("prezzounitario","productSales","prezzounitario<140"); | Calcola la deviazione standard di "PrezzoUnitario" (considerando i dati forniti come campione) dalla tabella "ProductSales" dove "prezzounitario" è maggiore di 140 e visualizza il risultato in DstDev. Calcola anche la deviazione standard di "PrezzoUnitario" (considerando i dati specificati come l'intera popolazione) se "prezzounitario" è minore di 140 e visualizza i risultati in DstDevP. |
Esempio di VBA
Nota
Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
L'esempio seguente restituisce una stima della deviazione standard relativa a una popolazione e un campione di popolazione per gli ordini spediti nel Regno Unito. Il dominio è rappresentato da una tabella degli ordini. L'argomento criteri limita il set di record risultante a quelli per i quali il valore PaeseSpedizione è UK.
Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DStDev("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DStDevP("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
L'esempio seguente calcola le stesse stime usando una variabile, strCountryRegion, nell'argomento criteri . Si noti che le virgolette singole (') sono incluse nell'espressione stringa, in modo che quando le stringhe vengono concatenate, il valore letterale UK stringa sarà racchiuso tra virgolette singole.
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 & "'")