È possibile usare le funzioni DStDev e DStDevP per stimare la deviazione standard in una serie di valori in un set di record specifico (un dominio). Usare le funzioni DStDev e DStDevP in un modulo di 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 ( espr , dominio [, criteri] )
DStDevP ( espr , dominio [, criteri] )
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ò essere un'espressione stringa che identifica un campo in una tabella o in una query oppure un'espressione che esegue un calcolo sui dati di tale campo. In espr è possibile includere il nome di un campo di una tabella, un controllo di una maschera, una costante o una funzione. Se espr include una funzione, questa può essere una funzione predefinita o definita dall'utente, ma non un'altra funzione di aggregazione sui domini o una funzione 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 equivale spesso alla clausola WHERE in un'espressione SQL, senza la parola WHERE. Se criteri viene omesso, le funzioni DStDev e DStDevP valutano espr rispetto all'intero dominio. Qualsiasi campo incluso in criteri deve essere anche un campo in dominio; in caso contrario, le funzioni DStDev e DStDevP restituiscono un valore Null. |
Osservazioni
Se dominio fa riferimento a meno di due record o se meno di due record soddisfano quanto previsto da criteri, le funzioni DStDev e DStDevP restituiscono un valore Null, che indica che non è possibile calcolare una deviazione standard.
Indipendentemente dal fatto che la funzione DStDev o DStDevP venga usata in una macro, in un modulo, in un'espressione di query o in un controllo calcolato, è necessario specificare con attenzione l'argomento criteri 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 anche in un'espressione con campi calcolati in una query oppure 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 con campi calcolati 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 calcolare la deviazione standard per tutti i record in dominio, usare la funzione StDev o StDevP.
Suggerimento Se il tipo di dati del campo da cui viene derivato espr è 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","venditeprodotto","prezzounitario>140") AS Espr1, DStDevP("unitprice","productSales","unitprice<140") AS Espr2 FROM productSales GROUP BY DStDev("prezzounitario","productSales","prezzounitario>140"), DStDevP("unitprice","productSales","unitprice<140"); |
Calcola la deviazione standard di "PrezzoUnitario" (considerando i dati indicati come campione) dalla tabella "VenditeProdotto", dove "prezzounitario" è maggiore di 140 e visualizza il risultato in Espr1. Calcola inoltre la deviazione standard di "PrezzoUnitario" (considerando i dati dati come intera popolazione) dove "prezzounitario" è minore di 140 e visualizza i risultati in Espr2. |
SELECT DStDev("prezzounitario","venditeProdotto","prezzounitario>140") AS DstDev, DStDevP("unitprice","productSales","unitprice<140") AS DstDevP FROM productSales GROUP BY DStDev("unitprice","productSales","unitprice>140"), DStDevP("unitprice","productSales","unitprice<140"); |
Calcola la deviazione standard di "PrezzoUnitario" (considerando i dati indicati come campione) dalla tabella "VenditeProdotto", dove "prezzounitario" è maggiore di 140 e visualizza il risultato in DstDev. Calcola inoltre la deviazione standard di "PrezzoUnitario" (considerando i dati dati come intera popolazione) dove "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 ai soli record in cui il valore di ShipCountryRegion corrisponde al Regno Unito (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 successivo calcola le stesse stime usando una variabile, strCountryRegion, nell'argomento criteri. Si noti che nell'espressione stringa sono incluse le virgolette singole ('), per cui quando le stringhe sono concatenate, il valore letterale stringa UK 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 & "'")