Filtern von Daten - Optimierung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

LeO_Org
Beiträge: 7
Registriert: Mo, 20.02.2006 17:11

Filtern von Daten - Optimierung

Beitrag von LeO_Org »

Ich habe 3 Tabellen von denen in einer Tabelle die meisten Daten stehen. Im Prinzip enthält diese eine Tabelle nur die Kontoänderungen und auf den andern Blättern werden die Änderungen ausgewertet.

Nachdem ich ziemliche Performance Probleme habe, suche ich nach einer Optimierung. Ich benötige auf einem AMD X2 3800+ zum Wechseln der Tabellen immerhin 70 sec (!). Auf einem langsameren Rechner halt empflindlich mehr.

Eine Idee zur Optimierung hätte ich ja, allerdings weiß ich nicht wie ich das gebacken bekomme. Nämlich von dem Kontostandsblatt alle Zeilen mit einem Wert in einer bestimmten Spalte als Hilfspalte irgendwohin kopieren und dann nur noch auf diese zugreifen.

So wird halt momentan von dem einem Blatt die ersten 500 Zeilen gesucht und das ca. 170x immer von den gleichen Daten. Und ich würde mir halt erhoffen, wenn ich so eine Hilfsspalte hätte, dass die Suche ein wenig schneller geht. Nur wie bekomme ich die Hilfsspalte?
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Beitrag von Gert Seler »

Hallo Leo,
wie wäre es mit der Funktion "SVERWEIS".
Siehe Ooo-Hilfe.

mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
LeO_Org
Beiträge: 7
Registriert: Mo, 20.02.2006 17:11

Beitrag von LeO_Org »

Hallo Gert,

Mir ist aufgefallen, dass ich die konkrete Berechnungsformel nicht dazugefügt habe und ich hier vielleicht ein wenig zu ungenau war.

Die Berechnungsformel lautet z.B.:

=SUMMENPRODUKT($Bank.$D$8:$D$505=N$1;NICHT(ISTFEHLER(SUCHEN($A14;$Bank.$E$8:$E$505)));$Bank.$F$8:$F$505)

Wobei:

$A14 = Name der Person
$Bank.$E8:$E$505 = Spalte, in der der Name gesucht werden soll, (auf einem anderem Blatt)
N$1 = aktuelles Monat, für das die Auswertung erfolgen soll
$Bank.$D$8:$D$505 = Spalte, in der das Monat enthalten ist
$Bank.$F$8:$F$505 = Spalte, in der der Betrag stehen sollte.

D.h. die Abfrage funkt in etwa so:

Bilde die Summe von der Person, der Name fix in einer Zelle steht und bei der in einem Monat eine Zahlung vorhanden ist.

Der Wert mit 505 ist der höchstmögliche Zeileneintrag, der berücksichtigt wird. Einträge nach der Zeile bleiben unberücksichtigt (willkürlich festgelegt). In der Spalte Bank.$F stehen NUR Zahlungen drinnen, die berücksichtigt werden. Daher dachte ich, ich kopiere mir nur die Zeilen deren Spalte einen Eintrag hat und suche nur dort. (Und hier fehlt mir ein wenig die Idee, wie ich das umsetzen kann.)

Die Zahlungen brauche ich für jedes Monat einzeln und jede Person einzeln.

Die Berechnung an sich funkt eigentlich sehr gut. Nur ist halt bei 14-15 Personen das Ganze mehr als langsam.

Den Punkt mit SVERWEIS ist interessant, nur weiß ich nicht wie ich den umsetzen soll, wenn der Name nur teilweise in der Suche enthalten ist. z.B. suche nach 'Martin' im Text 'Martin Mayer' sollte zu einem Treffer führen.

Hat irgendwer noch Ideen hierzu?

:)

LeO
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Beitrag von Gert Seler »

Hallo LeO,
soll Deine "Datenbank" größere Datenblöcke beinhalten,
sind Grundkenntnisse in der "Datenbank_Erstellung" sehr vorteilhaft.
Deine Kunden-Adressen sollten unbedingt "nummeriert" werden, da
der Name "Karl Mayer" ja mehrmals vorhanden sein kann.

Über "SVERWEIS" kannst Du hier weiteres erfahren :

http://ooowiki.de/CalcFunktionenTabellen/DatenFinden

Wenn Du dort noch etwas weiter suchst, findet sich auch der Abschnitt
"Ooo-Base" zur Erstellung von "Datenbanken".

mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
LeO_Org
Beiträge: 7
Registriert: Mo, 20.02.2006 17:11

Beitrag von LeO_Org »

Also das mit dem SVERWEIS verstehe ich so halbwegs. Ein wenig fehlt mir bei dem Link, wie dann WVERWEIS verwendet wird.

Mein wesentliches Problem ist, dass ich eine Abfrage ähnlich wie bei SQL habe, die heißt LIKE '%Mayer%'. Also, die Spalten, bei denen 'Mayer' enthalten sein soll. Die Eindeutigkeit, welcher Mayer wird in der Abfrage bzw. Verkettung festgelegt.

Nur wie verwende ich dann SVERWEIS im Zusammenhang mit Teilsuche? Also z.B. Summeprodukt über alle die Mayer heißen?
Antworten