Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Sonstiges - BEITRAG: Einsatz von Datenbank-Funktionen


Aufgabe
Die Funktionen der Kategorie Datenbank DBSUMME, DBMAX usw. können in einigen Fällen Array-Formeln ersetzen.

VORTEIL: Die Synthax ist kurz und einfach, sie sind schnell und lassen sich auf ganze Spalten anwenden.

NACHTEIL: Für jede Berechnung muß in der Tabelle ein Kriterienbereich definiert werden.

       A               B               C               D               E               F               G       
1 Name  Tag  Betrag      Name  Tag  
2 Bach  Fr  34      WF  Mo  
3 Bach  So  74      Bach  Fr  
4 WF  Fr  17         
5 WF  Mo  54         
6 Gödel  Mo  49    Summe:  198   
7 Escher  Fr  93    Max:  54   
8 Escher  Mo  30         
9 WF  Mo  49         
10 Gödel  Mo  50         
11 Escher  Mo  13         
12 WF  Fr  12         
13 Bach  So  89         
14 WF  Mo  45         
15 Gödel  So  52         
16 Gödel  So  24         
17 Gödel  Mo  48         
18 WF  So  89         
19 Escher  Mo  61         
20 WF  Mo  16         

Lösung
Berechnet werden sollen alle Beträge, in denen in Spalte A "WF" UND in Spalte B "Mo" steht, ODER in Spalte A "Bach" UND in Spalte B "Fr".

Der Kriterienbereich steht in F1:G3
WICHTIG: UND-Bedingungen stehen nebeneinander; ODER-Bedingungen stehen untereinander

=DBSUMME(A:C;"Betrag";F1:G3)
ergibt die Summe, die vergleichbare Array-Funktion wäre {=SUMME(WENN((A1:A100=F2)*(B1:B100=G2)+(A1:A100=F3)*(B1:B100=G3);C1:C100))}

=DBMAX(A:C;"Betrag";F1:G3)
ergibt das Maximum, die vergleichbare Array-Funktion wäre {=MAX(WENN((A1:A100=F2)*(B1:B100=G2)+(A1:A100=F3)*(B1:B100=G3);C1:C100))}
Erläuterung
Wenn man die Kriterien in die Formel integrieren könnte, also z.B.
=DBSUMME(A:C;"Betrag";{"Name"."Tag";"WF"."Mo";"Bach"."Fr"})
wären die DB-Funktionen deutlich flexibler, da man den Kriterienbereich aber in der Tabelle anlegen muß, sind sie oft/meist nicht zu gebrauchen.

(Wäre ja auch schade um die schönen Array-Formeln)
:-)