Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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

Filtern nach Zeitüberschreitung

Filtern nach Zeitüberschreitung
28.09.2013 18:48:28
numenor
Hallo Zusammen.
Ich suche nach einer Lösung für das Filtern von Positionen, wenn eine bestimmte Zeit überschritten ist. Ich habe eine Tabelle mit 2 Spalten. Spalte A (Site number) ist eine Auflistung von Zentrumsnummern. Spalte B zeigt an diesen Zentren alle gemachten Untersuchungstermine.
Was ich benötige, ist eine separate Liste (als neues Tabellenblatt), die mir nur die diejenigen Zentren anzeigt, deren letzte Untersuchung 56 Tage oder länger her ist (immer vom aktuellen Datum (heute)gerechnet) mit dem zughörigen aktuellsten sprich letzten Untersuchungstermin (der dann mehr als 56 Tage her sein muss). Alle Zentren, in denen alle aufgeführten Untersuchungstermine nicht 56 Tage überschreiten, sollen nicht angezeigt werden.
Beispiel der Liste anbei:

Die Datei https://www.herber.de/bbs/user/87456.xlsx wurde aus Datenschutzgründen gelöscht


Wenn mir dabei einer helfen könnte, wäre super. Herzlichen Dank!
Simone

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
OT@robert: Selten so gelacht ...
01.10.2013 22:18:28
Luc:-?
wie bei dieser Level-Bemerkung!
Freu dich auf Okto-/November, eher ist's leider nichts geworden, aber die neue SuperFkt ist jetzt so gut wie fertig.
Gruß Luc :-?

OT@Luc-Nicht schlecht ;-), bin gespannt ! Gruß
02.10.2013 13:02:33
robert

Lösung mit Hilfsspalten
28.09.2013 21:16:25
Erich
Hi,
hier sind G:H Hilfsspalten, meine Lösung steht in D1:E6 :
(Formeln von Zeile 2 weit genug nach unten kopieren)
 ABCDEFGH
1SiteUntersuchung Siteletzte U. Siteletzte U.
2020404.07.13 040101.08.13 020429.08.13
3020404.07.13 110423.07.13 020118.09.13
4020411.07.13 001031.07.13 020518.09.13
5020429.08.13 001215.07.13 040408.08.13
6020107.08.13 000212.07.13 040101.08.13
7020112.08.13 0#NV 080110.09.13
8020115.08.13    080503.09.13
9020118.09.13    080218.09.13
10020511.07.13    080610.09.13
11020511.07.13    110423.07.13
12020525.07.13    110506.09.13

Formeln der Tabelle
ZelleFormel
D2{=INDEX(G:G;KKLEINSTE(WENN(H$2:H$444<=HEUTE()-56;ZEILE(H$2:H$444)); ZEILE(D1)))}
E2=SVERWEIS(D2;G$2:H$444;2;0)
G2{=WENN(ZEILE()>SUMMENPRODUKT((A$1:A$444<>"")*(VERGLEICH(A$1:A$444&"";A$1:A$444&"";0)=ZEILE($1:$444))); "";INDEX(A:A;VERGLEICH(1;(ZÄHLENWENN(G$1:G1;A$1:A$444)=0)*(A$1:A$444<>""); 0)))}
H2{=WENN(G2="";"";MAX((A$2:A$444=G2)*B$2:B$444))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Das Rechnen dauert eine Weile, sind eben etliche Matrixformeln. Ich würde das eher mit VBA lösen,
aber nicht hier - wg. "VBA nein".
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: Schönen Sonntag!

Anzeige
AW: Lösung mit Hilfsspalten
29.09.2013 00:14:40
numenor
Hallo Erich, super, das funktioniert, ganz herzlichen Dank. Da das ehrlich gesagt ist, tatsächlich nur ein Extrakt der Listen sein wird, die zu bearbeiten sind, wird es wohl ein wenig dauern. Ich hatte erst auch eher daran gedacht, das mit einem Makro zu lösen, meine Programmierkenntnisse sind aber eher bescheiden ausgegrägt.
Ganz herzliche Grüsse aus Berlin und auch einen schönen Sonntag. Simone

Anzeige
AW: Filtern nach Zeitüberschreitung
28.09.2013 23:01:07
fcs
Hallo Simone,
hier eine Lösung mit Auswertung per Pivottabellenberich und zusätzlicher Spalte mit Autofilter.
https://www.herber.de/bbs/user/87458.xlsx
Gruß
Franz

VBA-Lösung
29.09.2013 13:45:45
Erich
Hi,
mit VBA-Mitteln geht es auch recht flott: Option Explicit Sub Dict_Filter3() Dim dicJ As Object, dicN As Object, arQ Dim zz As Long, arK, arD() Set dicJ = CreateObject("Scripting.dictionary") Set dicN = CreateObject("Scripting.dictionary") With Sheets("Tabelle2") ' Quelldaten arQ = .Cells(1, 1).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row, 2) End With ' Auswahl For zz = 2 To UBound(arQ) If arQ(zz, 2) > Date - 56 Then ' scheidet aus dicN(arQ(zz, 1)) = 0 If dicJ.Exists(arQ(zz, 1)) Then dicJ.Remove (arQ(zz, 1)) Else If Not dicN.Exists(arQ(zz, 1)) Then ' noch nicht ausgeschieden If dicJ.Exists(arQ(zz, 1)) Then ' ist Kandidat If dicJ(arQ(zz, 1))

Anzeige
AW: VBA-Lösung
29.09.2013 15:15:42
numenor
Hallo Erich, du bist ein Genie! Funktioniert super, ich danke dir ganz herzlich!
Sonnige Grüsse aus Berlin, Simone

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige