Hallo zusammen,
ich habe ein Problem, dass ich mit den DB-Funktionen lösen wollte.
Aber vielleicht habe ich mich dabei verrannt. Wäre für jede neue Idee
dankbar.
Gruß
Markus.
Kurzbeschreibung:
Ich habe eine Excel 2003 Datei mit zwei Tabellenblättern.
Das Blatt "Daten" enthält importierte Daten, die in der ersten Spalte
eine numerische Kennung besitzen und natürlich eine Kopfzeile. Die
Erste Spalte hat den Namen "ID". Für den Datenbereich wurde der
Name "in" vergeben.
Das Blatt "Berechnungen" könnte minimal aus den Spalten A="von",
B="bis", C="Anzahl", D="Niedrigste" und zwei weiteren Spalten E und
F mit Bedingungen bestehen (wenn es irgendwie so funktioniert).
Ziel ist es in "Anzahl" die Daten zu zählen, die in dem in den Feldern
"von" und "bis" angegebenen Zahlenbereich liegen und in
"Niedrigste" den niedrigsten Wert in diesem Bereich anzugeben.
Die Zeile zwei am Blatt "Berechnungen" funktioniert einwandfrei. Sie
enthält neben den Zahlenwerten in A und B in C2 die Formel
=DBanzahl(Daten!in; "ID"; E1:F2)
und in D2 die Formel
=DBmin(Daten!in; "ID"; E1:F2)
Dabei enthält E1:F2 die folgenden Einträge
ID; ID
=verketten(">=";TEXT(A2;"0")); =verketten("<=";TEXT(B2;"0"));
Die DB-Funktionen selektieren somit aus dem Datenbereich die
Spalte mit der Überschrift "ID" und arbeiten dann mit den Zeilen, die
in dem in den Spalten A und B stehenden Wertebereich liegen.
DBanzahl zählt die Werte, DBmin liefert den kleinsten.
Leider brauche ich diese Abfrage auch in den Zeilen 3 bis ... des
Tabellenblattes und genau da funktioniert der Ansatz nicht mehr
(oder nur mit einem Trick, den ich nicht kenne).
Nach meinem Ansatz sollen die Zellen E3:F3 die
Kriterien
=verketten(">=";TEXT(A3;"0")); =verketten("<=";TEXT(B3;"0"));
enthalten. Allerdings kann ich den DB-Funktionen jetzt keinen
zusammenhängenden Kriterienbereich mehr übergeben. Die
notwendige Kopfzeile und die Filterangaben sind getrennt in den
Bereichen E1:F1 und E3:F3. In C3 funktioniert die Eingabe
=DBanzahl(Daten!in; "ID"; E1:F1 E3:F3)
leider nicht und eine andere Syntax, die das Problem lösen könnte,
fällt mir nicht ein.
Ist das irgendwie in den Griff zu bekommen oder gibt es einen
anderen Ansatz (außer Makro-Programmierung, die ich noch
vermeiden will).