Za pomocą funkcji DAvg można obliczyć średnią dla zestawu wartości w określonym zestawie rekordów (domenie). Funkcji DAvg można używać w module języka Visual Basic for Applications (VBA), makrze, wyrażeniu zapytania lub kontrolce obliczeniowej.
Można na przykład użyć funkcji DAvg w wierszu kryteriów kwerendy wybierającej dotyczącej kosztów frachtu, aby ograniczyć wyniki do tych rekordów, w których koszt frachtu przekracza średnią. Można również użyć wyrażenia zawierającego funkcję DAvg w kontrolce obliczeniowej i wyświetlić średnią wartość poprzednich zamówień obok wartości nowego zamówienia.
Składnia
DAvg(wyrażenie, domena [, kryteria] )
W składni funkcji DAvg występują następujące argumenty:
| Argumenty argumentów | Opis |
|---|---|
| wyrażenie | Argument wymagany. Wyrażenie identyfikujące pole zawierające dane liczbowe, dla których ma zostać obliczona średnia. Może to być wyrażenie tekstowe identyfikujące pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. W wyrażeniu można zawrzeć nazwę pola w tabeli, kontrolkę w formularzu, stałą lub funkcję. Jeśli wyrażenie zawiera funkcję, może to być funkcja wbudowana lub zdefiniowana przez użytkownika, ale z wyłączeniem funkcji agregującej domeny i funkcji agregującej języka SQL. |
| domena | Argument wymagany. Wyrażenie tekstowe identyfikujące zestaw rekordów stanowiący domenę. Może to być nazwa tabeli lub nazwa zapytania, o ile to zapytanie nie wymaga parametru. |
| kryteria | Argument opcjonalny. Wyrażenie tekstowe używane w celu ograniczenia zakresu danych, dla którego wykonywana jest funkcja DAvg . Na przykład kryteria są często takie same, jak klauzula WHERE w wyrażeniu SQL, z pominięciem wyrazu WHERE. Jeśli kryteria zostaną pominięte, funkcja DAvg oceni wyrażenie względem całej domeny. Każde pole zawarte w kryteriach musi być również polem w domenie; w przeciwnym razie funkcja DAvg zwraca wartość Null. |
Spostrzeżenia
Rekordy zawierające wartości null nie są uwzględniane przy obliczaniu średniej.
Niezależnie od tego, czy funkcja DAvg jest używana w makrze, module, wyrażeniu zapytania, czy w kontrolce obliczeniowej, należy starannie skonstruować argument kryteria , aby zapewnić jego poprawne obliczenie.
Funkcji DAvg można użyć do określenia kryteriów w wierszu Kryteria kwerendy. Załóżmy na przykład, że chcesz wyświetlić listę wszystkich produktów zamówionych w ilościach przekraczających średnią wielkość zamówienia. Można utworzyć zapytanie dla tabel Zamówienia, Szczegóły zamówień i Produkty, dołączając pola Nazwa produktu i Ilość, używając następującego wyrażenia w wierszu Kryteria poniżej pola Ilość:
>DAvg("[Quantity]", "Orders")
Funkcji DAvg można też używać w wyrażeniu pola obliczeniowego w zapytaniu lub w wierszu Aktualizacja do zapytania aktualizującego.
Uwaga
W wyrażeniu pola obliczeniowego w zapytaniu podsumowującym można użyć funkcji DAvg lub Avg . W przypadku korzystania z funkcji DAvg wartości są uśredniane przed zgrupowaniem danych. W przypadku użycia funkcji Avg dane są grupowane, zanim wartości w wyrażeniu pola zostaną uśrednione.
Funkcji DAvg należy używać w kontrolce obliczeniowej, aby określić kryteria ograniczające zakres danych, dla których wykonywana jest funkcja DAvg . Aby na przykład wyświetlić średni koszt frachtu dla przesyłek wysyłanych do Kalifornii, należy ustawić następujące wyrażenie jako właściwość ŹródłoKontrolki pola tekstowego:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Jeśli chcesz po prostu uśrednić wszystkie rekordy w domenie, użyj funkcji Avg .
Funkcji DAvg można użyć w module, makrze lub kontrolce obliczeniowej formularza, jeśli pole, które ma zostać wyświetlone, nie znajduje się w źródle rekordów, na którym oparty jest dany formularz. Załóżmy na przykład, że masz formularz oparty na tabeli Zamówienia i chcesz użyć pola Ilość z tabeli Szczegóły zamówień, aby wyświetlić średnią liczbę pozycji zamówionych przez określonego klienta. Aby wykonać to obliczenie i wyświetlić dane w formularzu, można użyć funkcji DAvg .
Porady
- W przypadku używania funkcji DAvg w kontrolce obliczeniowej można umieścić tę kontrolkę w nagłówku lub stopce formularza, tak aby wartość tej kontrolki nie była obliczana ponownie przy każdym przejściu do nowego rekordu.
- Jeśli typem danych pola, z którego pochodzi wyrażenie , jest liczba, funkcja DAvg zwraca typ danych Podwójna precyzja. W przypadku używania funkcji DAvg w kontrolce obliczeniowej należy dołączyć do wyrażenia funkcję konwersji typu danych, aby zwiększyć wydajność.
- Mimo że funkcji DAvg można używać do wyznaczania średniej wartości w polu tabeli obcej, bardziej efektywnym rozwiązaniem może być utworzenie zapytania zawierającego wszystkie potrzebne pola i oparcie formularza lub raportu na tym zapytaniu.
Uwaga
Niezapisane zmiany rekordów w domenie nie są uwzględniane w działaniu tej funkcji. Jeśli chcesz, aby funkcja DAvg była oparta na zmienionych wartościach, musisz najpierw zapisać zmiany, klikając Zapisz rekord w obszarze Rekordy na karcie Dane , przenosząc fokus na inny rekord lub używając metody aktualizacji .
Przykład
Uwaga
Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA). Aby uzyskać dodatkowe informacje na temat pracy w języku VBA, wybierz pozycję Dokumentacja dewelopera z listy rozwijanej obok przycisku Wyszukaj i wprowadź odpowiednie terminy w polu wyszukiwania.
Poniższa funkcja zwraca średni koszt frachtu dla zamówień wysłanych w określonym dniu lub później. Domeną jest tabela Zamówienia. Argument kryteria ogranicza wynikowy zestaw rekordów na podstawie danego kraju/regionu i daty wysyłki. Zwróć uwagę, że słowo kluczowe AND jest zawarte w ciągu w celu rozdzielenia wielu pól w argumencie kryteria . Wszystkie rekordy uwzględniane w obliczeniach funkcji DAvg spełniają oba te kryteria.
Public Function AvgFreightCost _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Double
AvgFreightCost = DAvg("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"'AND [ShippedDate] >= #" & dteShipDate & "#")
End Function
Aby wywołać tę funkcję, użyj następującego wiersza kodu w oknie bezpośrednim:
:AvgFreightCost "UK", #1/1/96#