4.3k Aufrufe
Gefragt in Tabellenkalkulation von
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).

6 Antworten

0 Punkte
Beantwortet von mixmax Experte (2.2k Punkte)
in Access wäre das leicht:

importiere die Tabelle in Access,
mache ein Formular und alle Datenquelle für das Formular schreibst du

select count(id) as Anzahl, min(in) as Kleinster, max(in) as Groester from Tabelle1;


Du kannst mit Filtern einstellen, das er nur Zeilen berücksichtigen soll wo der wert "in" in dem gewünschten bereich liegt.

also Excel ist zwar schön aber Datenbanken sind für solche sachen 1000 mal besser.
0 Punkte
Beantwortet von
Hallo MixMax,

leider ist Access keine Option. Es gibt kein Access dort wo das ganze
laufen soll und die Zeilen des Blattes "Berechnungen" müssen von den
Mitarbeitern bearbeitet werden können.
(Neue Zeilen für neue Wertebereiche einfügen, Zeile löschen,
Wertebereiche anpassen)


Gruß
Markus.
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Markus,

sicher ist Dein Problem auch in Excel lösbar, nur wäre eine Beispieldatei von Vorteil.
Ein Nachbau geht meistens in die Hose und kostet Lust und Zeit.

Die Daten könntest Du verfälschen, aber die Struktur sollte schon dem Original entsprechen.

Eine mögliche Upload-Adresse wäre diese.

Gruss
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

dann probieren wir es doch einmal mit
DB-Funktionen1.xls

Es gibt keine importierte Daten in dem Beispiel und den Name für den Datenbereich habe ich auch noch etwas kürzen
können.


Gruß
Markus.
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Markus,

ich würde auf die Datenbankfunktionen verzichten und folgende Formeln verwenden.

Formel für C2:

=SUMMENPRODUKT((Daten!A$2:A$21>=A2)*(Daten!A$2:A$21<=B2))

Formel für D2:

=MIN(WENN((Daten!A$2:A$21>=A2)*(Daten!A$2:A$21<=B2);Daten!A$2:A$21))

Die Eingabe der zweiten Formel ist mit Strg+Shift+Enter zu bestätigen, da diese als Martrixformel arbeitet.

Die Berechnungen der Spalten E und F sind für meine Formeln nicht erforderlich.

Gruss
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

der Ansatz ist gut!

Produkte aus booleschen Ausdrücken zu bilden wäre mir nicht eingefallen
und mit den Matrix Operationen kenne ich mich bis jetzt nicht aus.
Gibt es hierzu eine gute Einführung?

Gruß
Markus.
...