Funkcje DSUM i DCOUNT w programie Excel nie działają z tabelami przestawnymi

Symptomy

Rozważmy następujący scenariusz w programie Microsoft Excel:

  • Tworzysz tabelę zawierającą co najmniej dwie kolumny danych w arkuszu.

  • Do arkusza wstawia się nową tabelę przestawną opartą na danych nowej tabeli.

  • Formułę wprowadza się przy użyciu jednej z następujących funkcji bazy danych:

    • DCOUNT
    • DSUM
  • Odwołania do komórek tabeli przestawnej są używane dla parametru bazy danych funkcji bazy danych. Odwołanie do komórki dla kolumny w tabeli przestawnej służy do używania parametru pola funkcji bazy danych.

    Na przykład rozpatrzmy następujący scenariusz. Tabela przestawna znajduje się w komórkach C10:F20. Docelowa kolumna to F10, a ta kolumna ma etykietę kolumny "Total". Tabela bazy danych, na której opiera się tabela przestawna, znajduje się w N1:Q10. Kryteria funkcji to H2:H12. Parametry funkcji DCOUNT są następujące:

    database= C10:F20

    pole = F10

    criteria= H2:H12

    Funkcja jest zapisywana w następujący sposób: DCOUNT(C10:F20,F10,H2:H12)
    W tym scenariuszu podczas obliczania funkcji DCOUNT i DSUM zwracany jest następujący błąd:

    "#VALUE!"

    Jeśli używasz etykiety kolumny "Total" dla parametru fieldparameter, funkcje DCOUNT i DSUM również zwracają błąd "#VALUE!".

Przyczyna

Ten problem występuje, ponieważ parametr pola funkcji DCOUNT i DSUM nie może używać odwołania do komórki lub etykiety kolumny do pobierania danych z tabeli bazy danych. W przypadku korzystania z funkcji DCOUNT i DSUM w tabeli przestawnej parametr pola może używać tylko liczby do reprezentowania pozycji kolumny na liście. Na przykład parametr może używać wartości 1 dla pierwszej kolumny, 2 dla drugiej kolumny itd. Nie używaj cudzysłowów wokół liczby.

Obejście problemu

Aby obejść ten problem, użyj etykiety kolumny lub wartości pozycji kolumny, aby zidentyfikować kolumnę do użycia w parametrze pola.

Na przykład, korzystając z przykładu w sekcji "Objawy", można ponownie zapisać funkcję DCOUNT w następujący sposób:

DCOUNT(C10:F20,4,H2:H12)