Za pomocą funkcji DAvg można obliczyć średnią zbioru wartości w określonym zestawie rekordów ( domena ). Funkcji DAvg należy używać w module Visual Basic for Applications (VBA), w makro, w wyrażeniu zapytania lub w kontrolka obliczeniowa.
Można na przykład użyć funkcji DAvg w wierszu kryteriów zapytania wybierającego dla kosztów frachtu, aby ograniczyć wyniki do tych rekordów, w których koszt frachtu przekracza średnią. Możesz też użyć wyrażenia zawierającego funkcję DAvg w kontrolce obliczeniowej i wyświetlić średnią wartość poprzednich zamówień obok wartości nowej kolejności.
Składnia
DAvg ( wyr ., domena [, kryteria] )
W składni funkcji DAvg występują następujące argumenty:
Argument |
Opis |
wyrażenie |
Argument wymagany. Wyrażenie identyfikujące pole zawierające dane liczbowe, które mają zostać uśrednione. Może to być wyrażenie tekstowe identyfikujące konkretne pole w tabeli lub zapytaniu albo wyrażenie wykonujące obliczenia na danych w tym polu. W programie expr można dołączyć 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 ciągu służące do ograniczania zakresu danych, dla którego wykonywana jest funkcja D Avg. Na przykład kryteria są często równoważne klauzuli WHERE w wyrażeniu SQL bez wyrazu WHERE. Jeśli argument kryteria zostanie pominięty, funkcja DAvgoceni wyrażenie względem całej domeny. Każde pole zawarte w criteria 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 w obliczeniach średniej.
Niezależnie od tego, czy używasz funkcji DAvg w makrze lub module, w wyrażeniu zapytania, czy w kontrolce obliczeniowej, musisz starannie skonstruować argument kryteria , aby upewnić się, że zostanie on poprawnie oceniony.
Za pomocą funkcji DAvg można określić kryteria w wierszu Kryteria zapytania. Załóżmy na przykład, że chcesz wyświetlić listę wszystkich produktów zamówionych w ilości powyżej średniej liczby zamówień. Możesz utworzyć zapytanie w tabelach Zamówienia, Szczegóły zamówień i Produkty oraz dołączyć pole Nazwa produktu i pole Ilość, a w wierszu Kryteria poniżej pola Ilość w wierszu Kryteria wpisz następujące wyrażenie:
>DAvg("[Quantity]", "Orders")
Funkcji DAvg można także użyć w wyrażeniu pola obliczeniowego w zapytaniu lub w wierszu Aktualizacja do zapytanie aktualizujące.
Uwaga: Funkcji DAvg lub Avg można użyć w wyrażeniu pola obliczeniowego w zapytanie podsumowujące. Jeśli używasz funkcji DAvg , wartości są uśredniane przed zgrupowaniem danych. Jeśli używasz funkcji Avg , dane są grupowane przed wartościami w wyrażeniu pola są uśredniane.
Funkcji DAvg należy używać w kontrolce obliczeniowej, gdy trzeba określić kryteria ograniczające zakres danych, dla którego wykonywana jest funkcja DAvg . Aby na przykład wyświetlić średni koszt frachtu dla przesyłek wysłanych do Kalifornii, ustaw właściwość ŹródłoKontrolki pola tekstowego na następujące wyrażenie:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Jeśli chcesz po prostu obliczyć średnią wszystkich rekordów w domenie, użyj funkcji Avg .
Funkcji DAvg można używać w module lub makrze albo w kontrolce obliczeniowej w formularzu, jeśli pole, które ma zostać wyświetlone, nie znajduje się w źródle rekordów, na którym jest oparty formularz. Załóżmy na przykład, że masz formularz oparty na tabeli Zamówienia i chcesz dołączyć pole Ilość z tabeli Szczegóły zamówień, aby wyświetlić średnią liczbę elementów zamówionych przez określonego klienta. Za pomocą funkcji DAvg można wykonać to obliczenie i wyświetlić dane w formularzu.
Porady
-
Jeśli używasz funkcji DAvg w kontrolce obliczeniowej, warto umieścić kontrolkę w nagłówku lub stopce formularza, aby wartość tej kontrolki nie była ponownie obliczana po każdym przejściu do nowego rekordu.
-
Jeśli typ danych pola, z którego pochodzi wyrażenie, jest liczbą, funkcja DAvg zwraca typ danych Double. Jeśli używasz funkcji DAvg w kontrolce obliczeniowej, uwzględnij w wyrażeniu funkcję konwersji typu danych, aby zwiększyć wydajność.
-
Chociaż za pomocą funkcji DAvg można określić średnią wartości w polu w tabela obca, bardziej efektywne może być utworzenie zapytania zawierającego wszystkie potrzebne pola, a następnie oparcie formularza lub raportu na tym zapytaniu.
Uwaga: Niezapisane zmiany rekordów w domenie nie są uwzględniane podczas korzystania z tej funkcji. Jeśli chcesz, aby funkcja DAvg była oparta na zmienionych wartościach, należy najpierw zapisać zmiany, klikając pozycję Zapisz rekord w obszarze Rekordy na karcie Dane , przenosząc fokus do innego rekordu 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. Domena to tabela Zamówienia. Argument kryteria ogranicza wynikowy zestaw rekordów na podstawie danego kraju/regionu i daty wysyłki. Należy pamiętać, że słowo kluczowe ORAZ jest zawarte w ciągu oddzielania wielu pól w argumacie kryteria . Wszystkie rekordy uwzględnione w obliczeniach funkcji DAvg będą miały 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ć funkcję, w oknie bezpośrednim użyj następującego wiersza kodu:
:AvgFreightCost "UK", #1/1/96#