Datenbankfunktionen können Formeln im Kriterienbereich auswerten.
Lösung
Eine Liste besteht aus den drei Spalten
Datum; Name;Betrag
und der Hilffspalte Monat.
Beispielsweise sollen alle Beträge summiert werden, die aus dem Monat März oder April
und von WF oder Jens stammen.
Der herkömmliche Kriterienbereich steht in F1:G5, die Lösung in
G8:=DBSUMME(A:D;C1;F1:G5)
Bei der Lösung mit Formel wird als Kriterienbereich nur I1:I2 benötigt.
Die Hilfsspalte Monat ist überflüssig !!!
In I2 steht =UND(ODER(MONAT(A2)=3;MONAT(A2)=4);ODER(B2="Jens";B2="WF")) (ergibt hier FALSCH)
Das Ergebnis lautet =DBSUMME(A:C;C1;I1:I2)
Dadurch werden die DB-Funktionen flexibler, hier noch ein Beispiel:
Gezählt werden soll die Anzahl unterschiedlicher Namen in Spalte B (bis Zeile 65536).
Schreibe in I2
=ZÄHLENWENN(B$2:B2;B2)=1
und in I8
=DBANZAHL2(A:C;B1;I1:I2)
und Du erhälst 3.
Die vergleichbare Array-Formel wäre
{=SUMME(WENN(B2:B65536<>"";1/ZÄHLENWENN(B2:B65536;B2:B65536)))}
Die DB-Funktion ist schneller als die Array-Formel
Erläuterung
WF:
Ist OK, aber ich mag diese DB-Dinger nicht !
Vielleicht auch deshalb: Anscheinend wird mit Excel-2007 Unsinn errechnet. Die anderen Versionen sollen korrekt rechnen (info Jan 12).