Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sverweis mit Toleranz

Sverweis mit Toleranz
16.01.2013 08:53:13
Jonas
Hallo liebe Leute,
ich sitze hier an einem projekt mit dessen Hilfe ich eine Auswertung machen möchte.
Das Problem lässt sich ganz einfach beschreiben aber ich kriegs nich hin das umzusetzen.
Ich habe Datenbankabfragen. Daraus erhalte ich zwei Tabellen. Aus der einen bekomme ich eine Zeit. Dieser Zeit möchte ich mit einer Toleranz von bspw. 5 min. den Status aus der anderen Tabelle zuordnen. Also Quasi hab ich die Zeit gegeben und will wissen was zu der Zeit +- 5 min passiert ist.
Hoffe ihr könnt mir weiter helfen.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweis mit Toleranz
16.01.2013 09:09:14
Klaus
Hallo Jonas,
ich bin mir ziemlich sicher, dass man das nicht mit dem SVERWEIS lösen wird - aber vielleicht mit INDEX, mit VBA oder mit ein paar Hilfsspalten.
Eine Musterdatei, mit einem händisch eingetragenem Wunsch-Suchergebniss, wäre aber auf jedem Fall hilfreich.
Erste Verständnissfrage:
in der Quelle seien folgende Zeiten und Daten::
07:00 / alpha
07:03 / bravo
07:04 / charlie
07:09 / delta
07:15 / echo
die Suche nach 07:08 Uhr soll nun was ergeben?
Möglichkeiten:
1) bravo (Suchzeit -5 minuten)
2) delta (am nähesten an der Suchzeit)
3) charlie (nächstkleinerer von der Suchzeit
4) delta (nächstgrößere von der Suchzeit
5) bravo, charlie, delta (alles innerhalb +- 5 minuten von der Suchzeit)
Grüße,
Klaus M.vdT.

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 09:59:47
Jonas
https://www.herber.de/bbs/user/83415.xlsx
Da isse die datei. Wie gesagt die Tabellen sind im original aus Datenbankabfragen und haben deswegen keine definite Länge.

AW: Sverweis mit Toleranz
16.01.2013 15:51:19
Daniel
Hi
probier mal diese Formellösung:
die Formel ist passend für deine Beispieldatei und geschrieben für G4:
=WENN((F4+$C$9)-SVERWEIS(F4+$C$9;$B$4:$B$6;1;WAHR)>2*$C$9;"---";SVERWEIS(F4+$C$9;$B$4:$C$6;2;WAHR)) 
Gruß Daniel

AW: Sverweis mit Toleranz
16.01.2013 16:15:47
Jonas
Naja das mit der ungenauen Übereinstimmung im Sverweis is immer so ne Sache....das klappt meistens nicht so gut hab ich die Erfahrung gemacht...ich hab ne Lösung gefunden.
Danke dass ihr versucht habt mir zu helfen ;)

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 17:03:58
Daniel
Hi
nur zu deiner Information: das Verhalten von VERGLEICH und SVERWEIS bei ungenauer Übereinstimmung ist das gleiche!
du musst folgendes beachten, wenn du mit ungenauer Übereinstimmung arbeitest:
1. die Suchmatrix muss aufsteigens sortiert sein (bei Vergleich ggf auch absteigen)
2. findet die Funktion keine genaue Übereinstimmung, dann wird der nächstkleiner Wert als Ergebnis verwendet.
Gruß Daniel

AW: Sverweis mit Toleranz
16.01.2013 09:42:15
Hajo_zi
benutze doch Autofilter?
Gruß Hajo

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 09:58:03
Jonas
Hm, nach etwas überlegen bin ich dazu gekommen, dass das wohl nicht geht. zumindest weiß ich nicht wie das funktionieren soll, da die Tabelle Werte über einen Zeitraum von einem Jahr mit Einträgen von bis zu 20 Meldungen pro Tag auswerten soll. Zudem sollen ja Werte aus der einen Tabelle ausgelesen werden und in der anderen Tabelle Zugeordnet werden. Grund für dieses Prozedere ist, dass Nicht jede Statusmeldung verwendet werden soll, sondern nur die, welche einen gewissen Grenzwert überschreiten. Dafür hab ich aber schon eine Lösung....ich hab nur das Problem, dass ich keine Zeiten zuordnen kann, die nicht exakt übereinstimmen. Diese Anforderung ergibt sich daraus, dass der Status etwas später gemeldet wird, als meine Zeit die ich durch die Auswertung bekommen habe.
Ich will die Tabelle so formatieren, dass sie stets aktuell ist. Den Filter müsste ich jedes mal manuell einstellen. das ist mir zu umständlich
Gruß Jonas

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 10:01:24
Jonas
https://www.herber.de/bbs/user/83416.xlsx
Hier ist die Datei. Wie gesagt, die zwei Tabellen sind aus Datenbankabfragen und haben keine definite Länge.

AW: Sverweis mit Toleranz
16.01.2013 10:14:54
Klaus
Hi Jonas,
das wird doch so nichts. Du beantwortest unsere Fragen nicht: In deiner Tabelle steht du willst den Wert "am nächsten dran" haben, aber mit einer Toleranzzeit von 5 minuten.
Was denn nun? Den nächsten Wert, oder nur den nächsten Wert wenns innerhalb von +-5 Minuten ist? Und was wenn es dafür keinen Wert gibt? Wofür GENAU die Toleranzzeit, warum reicht es nicht einfach den nächsten Wert zu nehmen?
Wir kennen dein Vorhaben nicht, nur für dich ist offensichtlich was du möchtest.
Dein Muster ist ganz offensichtlich in Aufbau und Form NICHT identisch mit deiner Mastertabelle. Warum machst du dir die Mühe deinen Tabellenaufbau zu verändern, damit wir komplexe Formeln/Funktionen auf den veränderten Tabellenaufbau anpassen, die du dann nicht in deine echte Tabelle übernehmen kannst? Ich entwickel auf dieses Muster jetzt nichts!
Wie flexibel bist du mit deinem Tabellenaufbau? Sind Hilfsspalten ok? Hajos Vorschlag mit dem Autofilter ist hervorragend, warum passt er dir nicht? Einen Button wirst du eh drücken müssen um die Berechnung auszuführen, ob der nun ein Makro startet oder den Autofilter ... vielleicht hilft dir ein Makro, das Auto-Filtert?
Wie groß ist die finale Tabelle? Mehrere Tausend Zeilen, oder nur ein paar dutzend? Direkt gefragt: Kommen rechenintensive Operationen (Bereich.Verschieben, {Matrix} usw) in Frage?
Grüße,
Klaus M.vdT.

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 10:47:00
Jonas
Also passt auf...das ist eine Auswertung zur Anlagenbelegung in einem Betrieb. Es gibt verschiedene Meldungen...zum einen kann ich die Meldung auslesen "Anlage Startet" und "Anlage fertig" sowie auf welcher Anlage das passiert und andererseits bekomme ich aus einer anderen Tabelle, die nicht zeitgleich aufgenommen wird die Information über den Status also "Zeit_start" "Zeit_ende" "Status" (bsp. Standby).
Ich bin mittlerweile eigentlich recht erfahren im Umgang mit Excel und würde mir zutrauen die Formel in meine einzubauen.
Zu deiner ersten Frage: es soll eine Zeile gefunden werden. Nämlich die, welche den Status wieder gibt zu der Zeit, in der die Anlage auf "Fertig" gesetzt wurde. Hierbei kann es zu Abweichungen der Zeiten von bis zu 5 minuten kommen. Alles was außerhalb dieser Zeit liegt soll nicht beachtet werden, geht ja mit einer Wenn Funktion, dasser dann k.A. ausgibt oder so. Für den ungünstigen Fall, dass mehrere Zeilen gefunden werden innerhalb dieser Toleranzzeit, soll die Zeile die am nähesten dran ist verwendet werden.
Die Toleranzzeit soll dem dienen, dass keine Verwechslung eintritt. Ich habe kein anderes Identifizierungsmerkmal als die Zeit. Wenn ich also zur Zeit 15:30 den Status wissen will, und der nächste Eintrag ist 18:00, dann bringt mir das nix weil 18:00 zu einem komplett anderen Auftrag gehört. Deswegen die Toleranz. Nur Anzeigen wenn die Zeit in dem Rahmen ist.
Ich traue mir wie gesagt zu die Formel auf meine Bedürfnisse und meine Tabelle anzupassen....wie so häufig ist das eine Tabelle mit Betriebsdaten....und das Excel file ist sehr komplex...deswegen hab ich versucht das so einfach wie möglich runter zu brechen. Ich brauch nur diese eine Suchfunktion!
Makro wäre ok...weiß ich aber auch nicht wie ich das machen sollte, Autofilter ist mir zu manuell...da muss ich meinen Filter jedes mal manuell setzen...ich möchte meine Tabelle einmal aufstellen, aufgrund der Ergebnisse eine Auswertung (Pivot oder so) und dann dadrin nichts mehr verändern für längere Zeit...und da wäre jedes mal einen Filter zu setzen sehr unpraktikabel.
Hilfsspalten können so viele rein wie nötig sind...das ist egal.
Zur Tabellengröße...Zur Zeit knappe 4000 Zeilen die ausgewertet werden sollen....allerdings ist der Bereich in dem etwas gefunden wird nur schätzungsweise 50 Zeilen groß....das könnte man nach Datum Filtern wenn das geht, dass der nur sucht wenn die Tage (Bsp. 15.1.13) übereinstimmen und dann daraus die Zeiten suchen. Allerdings bin ich auch hier dagegen einen manuellen Filter zu setzen...höchstens den Filter automatisch über ein makro anpassen.
Ich will doch nur die Zeile finden, in der die Zeiten in Abhängigkeit einer gewissen Toleranz übereinstimmen.
Vielen Dank für eure/deine Mühen ;)
Ich bin auch neu hier im Forum und danke schonmal für die bisher schnell verfassten Antworten.

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 14:19:33
Klaus
https://www.herber.de/bbs/user/83431.xlsm
Hi Jonas,
Hui, dass ist leider gar nicht so einfach wie es aussieht!
Anbei eine ganz wüste Mischung aus Formeln, Hilfsspalten und VBA - sehr unprofessionell, aber funktioniert (hoffentlich).
Grüße,
Klaus M.vdT.

AW: Sverweis mit Toleranz
16.01.2013 14:43:20
Jonas
Danke Klaus, das hilft mir ein bisschen weiter, allerdings ist das wie du schon sagtest auch nicht die ideallösung. Ich hab das jetzt über ne Indexfunktion gelöst...wenn Indexwert mit Zeilenwert über Vergleichssuche mit nächstgrößerem Wert als Differenz zur gesuchten Zeit größer als die angegebene Toleranz dann mache ne Indexfunktion mit dem Zeilenwert über Vergleich mit nächstkleinerem Wert...sieht zwar wüst aus aber funktioniert ^^ und das kann ich auch in meine Tabelle einbringen ohne das Makro immer aktivieren zu müssen.
Wenn Bedarf besteht kann ich die Funktion ja auch mal posten..is halt nur wie gesagt recht wüst.
Danke nochmal ;)

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 14:57:07
Klaus
Hi Jonas,
Bedarf habe ich keinen, aber ein akademisches Interesse an deiner Lösung!
Grüße,
Klaus M.vdT.

AW: Sverweis mit Toleranz
16.01.2013 16:13:25
Jonas

=WENN(
[@[Rüstzeiten >50]]"";
WENN(
ABS(
INDEX(
Tabelle_Abfrage_von_APERTUM78;
(VERGLEICH(
[@[DS fertig_real]];
Tabelle_Abfrage_von_APERTUM78[DatumVon];
-1));
6)-[@[DS fertig_real]])
>Zeiten!C$3;
INDEX(
Tabelle_Abfrage_von_APERTUM78;
(VERGLEICH(
[@[DS fertig_real]];
Tabelle_Abfrage_von_APERTUM78[DatumVon];
-1))+1;
21);
INDEX(
Tabelle_Abfrage_von_APERTUM78;
(VERGLEICH(
[@[DS fertig_real]];
Tabelle_Abfrage_von_APERTUM78[DatumVon];
-1));
21));
"")

Anzeige
AW: Sverweis mit Toleranz
16.01.2013 10:03:03
Jonas
komisch im Antwortformular sehe ich den Threat mit der hochgeladenen Datei nicht...sry fürs multiple Posting....dachte es ist nich angekommen da ich das nur im Archiv sehe.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige