Autor: Beate Schmitz  --- Aus Excel Standard - Gruppe: Funktionen

Datenbank Funktionen

Autor: Beate Schmitz - Erstellt: 2007-02      - Letzte Revision: ?

Datenbankfunktionen

Datenbankfunktionen sind ein mächtiges und dabei schnelles Instrument, um große Datenbanken nach Kriterien auszuwerten. Schnell sind sie, weil sie keine Arrayformeln sind. Und sie lassen sich auf ganze Spalten anwenden. Sie haben den Nachteil, dass ein Kriterienbereich definiert werden muss. Es ist nicht möglich, die Kriterien in die Formel zu integrieren. Wenn Sie das wollen, können Sie auf folgende Alternativen zurückgreifen: Auswerten von Bereichen nach ODER-Kriterien

In diesem Beitrag möchte ich Ihnen insbesondere Hinweise zum geschickten Einsatz der Datenbankfunktionen geben, die über die Online-Hilfe hinausgehen. Unten gebe ich Ihnen zunächst ein einfaches Beispiel, damit sie die Funktionsweise verstehen. Vor Einsatz der Datenbankfunktionen sollten Sie deren Besonderheiten kennen.

Zum Kriterienbereich ist zu sagen, dass UND-Bedingungen in einer Zeile stehen, ODER-Bedingungen untereinander. Die Überschriften des Kriterienbereichs müssen den Spaltenüberschriften der auszuwertenden Spalten entsprechen. Die Formel muss bezüglich des Kriterienbereichs genau die passende Größe haben, es dürfen keine Leerzeilen enthalten sein. Soll sich der Kriterienbereich bei Ihnen in der Größe den aktuellen Bedingungen anpassen, müssen Sie den Kriterienbereich in der Formel dynamisieren. Die Anzahl der UND und ODER-Kriterien ist frei programmierbar; der Übersichtlichkeit halber bin ich in meinen Beispielen von nur zwei UND-Kriterien ausgegangen.

Hinweisen möchte ich auch auf eine mögliche Fehlerquelle, wenn Text als Bedingung verglichen wird: DB-Funktionen werten nach "enthält" aus. Sucht man z.B. nach "Wolf" wird auch "Wolff" mitgezählt. Überlegen Sie also, ob derartige Fehlerquellen in Ihrer Datei auftreten könnten. Das Ergebnis wird falsch sein. Hier ein Beispiel mit Auswegen.

Wenn es sich bei den Bedingungen um Werte handelt, können Sie auch die Operatoren >, <, <>, <= und >= im Kriterienbereich einsetzen. Ansonsten wird nach der genauen Übereinstimmung ausgewertet. Hier ein Beispiel. Auch Daten (da Excel sie als Werte versteht) können Sie mit Operatoren kombinieren.

Interessant kann der Einsatz von Datenbankfunktionen sein, wenn man eine sehr große Datenbank in einem separaten Tabellenblatt nach allen möglichen Kombinationen auswerten möchte, welches die gleichen Überschriften enhält wie die Datenbank selbst. Dann braucht man, wenn man die Formel leicht erweitert, nicht pro Kriterium einen separaten Kriterienbereich anzulegen, hier ein Beispiel.

Wie man eine Formel als Kriterium in Datenbankfunktionen benutzt, erfahren Sie unter excelformeln.de.

Sämtliche Namen der Datenbankfunktionen beginnen mit DB, woran man sie dann auch sofort erkennt.

Die Syntax der Datenbankfunktionen ist: DBFUNKTION(Datenbank;Feld;Suchkriterien), siehe Beispiel

Diese Datenbankfunktionen stellt Excel uns zur Verfügung und in der Online-Hilfe (F1) erhalten Sie Erklärung dazu:
DBANZAHLGibt die Anzahl von Zellen zurück, die in einer Datenbank Zahlen enthalten    
DBANZAHL2Gibt die Anzahl nicht leerer Zellen in einer Datenbank zurück      
DBAUSZUGExtrahiert einen einzelnen Datensatz aus einer Datenbank, der dem angegebenen Kriterium entspricht    
DBMAXGibt den maximalen Wert einer Reihe von ausgewählten Datenbankeinträgen zurück      
DBMINGibt den minimalen Wert einer Reihe von ausgewählten Datenbankeinträgen zurück      
DBMITTELWERTGibt den Mittelwert ausgewählter Datenbankeinträge zurück          
DBPRODUKTMultipliziert die Werte in einem bestimmten Datensatzfeld, die mit dem Kriterium in einer Datenbank übereinstimmen  
DBSTABWSchätzt die Standardabweichung auf Basis einer Stichprobe ausgewählter Datenbankeinträge        
DBSTABWNBerechnet die Standardabweichung auf Basis einer Grundgesamtheit von ausgewählten Datenbankeinträgen      
DBSUMMEAddiert die Zahlen aus der betreffenden Feldspalte derjenigen Datensätze in der Datenbank, die den angegebenen Kriterien entsprechen
DBVARIANZSchätzt die Varianz, ausgehend von einer Stichprobe aus bestimmten Datenbankeinträgen
DBVARIANZENBerechnet die Varianz, ausgehend von der Grundgesamtheit aus bestimmten Datenbankeinträgen


Beipiele:

Zum Blattanfang

Grundlagenbeispiel mit DBSUMME mit UND und ODER-Varianten

Wieviele Tonnen Bananen lagern in Köln?

 ABCDEFGHI
1         
2 ObstsorteLagerMenge/to ObstsorteLagerMenge/to 
3 BananenHamburg5 BananenKöln12 
4 BirnenBerlin7     
5 ÄpfelKöln4     
6 BananenKöln3     
7 BananenMünchen3     
8 ÄpfelBerlin5     
9 BirnenKöln6     
10 ÄpfelMünchen8     
11 BananenKöln9     
12         

Formeln der Tabelle
ZelleFormel
H3=DBSUMME(B2:D11;D2;F2:G3)


Wenn wir die Syntax DBFUNKTION(Datenbank;Feld;Suchkriterien) an obigem Beispiel aufsplitten ist:

  • DBFUNKTION: DBSUMME
  • Datenbank: B2:D11
  • Feld: D2 (genau so gut könnte dort als Text stehen: "Menge/to" - also die Spaltenüberschrift der Spalte, die ausgewertet werden soll)
  • Suchkriterien: F2:G3


Wieviele Tonnen Bananen und Birnen lagern in Köln und Berlin?

Geben Sie alle möglichen Kombiniationen in den Kriterienbereich ein und erweitern den Bereich in der Formel:

 ABCDEFGHI
1         
2 ObstsorteLagerMenge/to ObstsorteLagerMenge/to 
3 BananenHamburg5 BananenKöln25 
4 BananenBerlin7 BananenBerlin  
5 ÄpfelKöln4 BirnenKöln  
6 BananenKöln3 BirnenBerlin  
7 BananenMünchen3     
8 ÄpfelBerlin5     
9 BirnenKöln6     
10 ÄpfelMünchen8     
11 BananenKöln9     
12         

Formeln der Tabelle
ZelleFormel
H3=DBSUMME(B2:D11;D2;F2:G6)



Zum Blattanfang

Auswertung mit Operatoren bei Werten

Wie schon oben beschrieben, können Sie auch die Operatoren >, <, <>, <= und >= im Kriterienbereich einsetzen, wenn es sich um Werte handelt. Ansonsten wird nach der genauen Übereinstimmung ausgewertet. Auch Daten (da Excel sie als Werte versteht) können Sie mit Operatoren kombinieren. Natürlich können Sie auch mehrere verschiedene Operatoren für die UND- und ODER-Kriterien festlegen.

An wievielen Orten lagern mehr als 4 Tonnen Bananen?

 ABCDEFGHI
1         
2 ObstsorteLagerMenge/to ObstsorteMenge/toAnzahl 
3 BananenHamburg5 Bananen>43 
4 BananenBerlin7     
5 ÄpfelKöln4     
6 BananenKöln3     
7 BananenMünchen3     
8 ÄpfelBerlin5     
9 BirnenKöln6     
10 ÄpfelMünchen8     
11 BananenKöln9     
12         

Formeln der Tabelle
ZelleFormel
H3=DBANZAHL(B2:D11;D2;F2:G3)

Zum Blattanfang

Kriterienbereich in der Formel dynamisieren

Wenn der Kriterienbereich in der Formel zu weit gefasst ist und Leerzeilen enthält, ergeben sich falsche Resultate. Wenn Ihre ODER-Kriterien in der Anzahl variieren können, sollten Sie vorbeugen, indem Sie den Kriterienbereich in der Formel mit der Funktion Bereich.Verschieben dynamisieren:

 ABCDEFGHI
1         
2 ObstsorteLagerMenge/to ObstsorteLagerMenge/to 
3 BananenHamburg5 BananenKöln25 
4 BananenBerlin7 BananenBerlin  
5 ÄpfelKöln4 BirnenKöln  
6 BananenKöln3 BirnenBerlin  
7 BananenMünchen3     
8 ÄpfelBerlin5     
9 BirnenKöln6     
10 ÄpfelMünchen8     
11 BananenKöln9     
12         

Formeln der Tabelle
ZelleFormel
H3=DBSUMME(B2:D11;D2;BEREICH.VERSCHIEBEN($F$2;;;ANZAHL2($F:$F);2))

Hier werden also so viele ODER-Kriterien berücksichtigt, wie Zeilen in Spalte F ausgefüllt sind. Weiterhin dürfen zwischen den verschiedenen ODER-Kriterien keine Leerzeilen vorkommen, sonst greift der Bereich zu kurz!


Zum Blattanfang

Auswertung verschiedener Kriterien pro Zeile mit nur einem Kriterienbereich

Sie haben eine umfangreiche Tabelle und möchten jedwede mögliche Kombination auswerten. In diesem Fall die Frage: Welche Tonnage welcher Obstsorte lagert wo? Zunächst sehen Sie hier die Ausgangstabelle:

Tabelle8

 ABCDE
1     
2 ObstsorteLagerMenge/to 
3 BananenHamburg6 
4 BananenBerlin8 
5 ÄpfelKöln5 
6 BananenKöln8 
7 BananenMünchen1 
8 ÄpfelBerlin7 
9 BirnenKöln1 
10 ÄpfelMünchen9 
11 BananenKöln3 
12 BananenHamburg2 
13 BananenBerlin5 
14 ÄpfelKöln2 
15 BananenKöln1 
16 BananenMünchen4 
17 ÄpfelBerlin9 
18 BananenHamburg3 
19 BananenBerlin4 
20 ÄpfelKöln2 
21 BananenKöln5 
22 BananenMünchen8 
23 ÄpfelBerlin9 
24 BirnenKöln9 
25 ÄpfelMünchen5 
26 BananenKöln5 
27     


Nach dem, was Sie bisher kennen, müssten Sie immer einen Kriterienbereich mit den jeweiligen Kriterien eingeben, um das passende Ergebnis zu erhalten. Das wäre ziemlich unübersichtlich und arbeitsaufwändig - dabei dann auch noch fehlerträchtig. Gehen Sie besser wie folgt vor:

Um jede Kombination in den Kriterienbereich als Unikat der Auswertungstabelle zu holen, setzen Sie den Spezialfilter - Filterergebnis in ein anderes Tabellenblatt für den Listenbereich B2:C26 ein, indem Sie Duplikate wegfiltern. Automatisch entstehen dadurch identische Spaltenüberschriften. Der Übersichtlichkeit halber habe ich diese dann nach Obstsorte und Lager alphabetisch aufsteigend sortiert. In die Spalte D des Auswertungsblatts fügen Sie die gewünschte Datenbankfunktion ein, durch den gezielten Einsatz relativer und absoluter Bezüge wird in jeder Formel der Kriterienbereich bis zur jeweiligen Zeile ausgewertet. Am Schluss der Formel wird die Summe der darüber befindlichen Ergebnisse subtrahiert, so dass in jeder Zeile das Ergebnis für genau diese Kombination ausgegeben wird:

Auswertung

 ABCDE
1     
2 ObstsorteLagerMenge/to 
3 ÄpfelBerlin25 
4 ÄpfelKöln9 
5 ÄpfelMünchen14 
6 BananenBerlin17 
7 BananenHamburg11 
8 BananenKöln22 
9 BananenMünchen13 
10 BirnenKöln10 
11     

Formeln der Tabelle
ZelleFormel
D3=DBSUMME(Datenbank!B$2:D$26;Datenbank!D$2;B$2:C3)-SUMME(D$2:D2)

Die Formel aus D3 kann nach unten kopiert werden.

Als Alternativen hierzu wäre der Einsatz einer Pivottabelle oder Teilergebnis Menü zu nennen. Oder der Einsatz von Summenprodukt, was bei einer großen Datenbank langsam ist.


Zum Blattanfang

Probleme bei Textbedingungen - Auswertung über eine Funktion

Wenn Sie Textbedingungen haben, müssen Sie sehr achtsam sein, denn Datenbankfunktionen werten diese nach "enthält" aus und nicht danach, ob sie völlig identisch sind. Es gibt aber einen Ausweg, auf dem Sie Ihr Ziel erreichen können: Auswertung über eine Funktion!

Zunächst das Beispiel, es soll in F4 die Summe aus Spalte B ausgegeben werden, die in Spalte A den Namen "Wolf" hat. Ohne diese Vorgehensweise würden auch alle Werte von Spalte B addiert, die in Spalte A "Wolff" haben:

 ABCDEF
1      
2FALSCH     
3      
4NameWert SummeWolf15
5Wolff9    
6Wolf5    
7Wolff1    
8Wolf3    
9Wolf1    
10Wolff7    
11Wolf6    

Formeln der Tabelle
ZelleFormel
A2=A5="Wolf"
F4=DBSUMME(A4:B11;B4;A1:A2)


Und hier die Regeln dafür:

  • Man muss eine Formel erstellen, deren Rückgabewert eine Bool'scher Wert ist, also WAHR oder FALSCH
  • Das Kriterium muss in der Formel enthalten sein
  • Diese Formel muss sich unbedingt auf die Zelle beziehen, die direkt unter der Überschriftszeile der Liste befindet. Da wir in unserem Beispiel Spalte A untersuchen ist die erste Zelle in der Liste entsprechend A5. Ob dann im Ergebnis der Zelle A2 WAHR oder FALSCh steht, ist unerheblich
  • Es darf im Suchkriterienbereich auf keinen Fall eine Überschriftenzeile stehen
  • Der Suchkriterienbereich muss die "leere" Überschriftenzeile miteinbeziehen!!!


Fragen stellen im Online-Excel Forum

Neu in Online-Excel: Online-Excel Newsletter

Weitere Artikel der Gruppe: Funktionen Aus Excel Standard
Nach oben