Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1560to1564
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

Zeiten mit kürzester Differenz markieren

Zeiten mit kürzester Differenz markieren
12.06.2017 10:37:35
JoWE
Hallo,
ich suche nach einer Lösung zur Markierung der beiden Rundenzeiten mit der kürzesten Differenz. Eine Formel, welche mir die kürzeste Differenz errechnet habe ich
Hier mein Beispiel:
Tabelle1

 ABCDEFG
2 Runde 1Runde 2Runde 3Runde 4Runde 5geringste
Differenz
3Car100:09:4800:07:5800:06:5900:07:5900:07:3900:00:01

Formeln der Tabelle
ZelleFormel
G3{=KKLEINSTE(WENN(B3:F3<>"";ABS(B3:F3-MTRANS(B3:F3))); ANZAHL(B3:F3)+1)}
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.8
Weiß jemand Rat?
Gruß
Jochen

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

Betreff
Datum
Anwender
Anzeige
AW: Zeiten mit kürzester Differenz markieren
12.06.2017 10:56:28
Daniel
Hi
die erste Runde mit =INDEX(3:3;MIN(WENN(ABS(B3:F3-MTRANS((B3:F3)))=G3;SPALTE(B3:F3)))) die zweite Runde mit
=INDEX(3:3;MAX(WENN(ABS(B3:F3-MTRANS((B3:F3)))=G3;SPALTE(B3:F3))))
beides sind Matrixformeln
Gruß Daniel
AW: Zeiten mit kürzester Differenz markieren
12.06.2017 11:27:53
JoWE
Hallo Daniel,
klappt super, mir werden die beiden Ergebnisse perfekt ausgegeben.
Danke!
Gruß
Jochen
AW: VBA
12.06.2017 11:36:02
Fennek
Hallo,
auf den ersten Blick schien VBA günstig, aber nach und nach ist der Code "monströs" geworden:

Sub fen()
'09:48   07:58   06:59   07:59   07:39
Dim rng As Range
Range("B2:F2").Copy Cells(2, "I")
Range("I2:M2").NumberFormat = "General"
Cells(3, "H").Resize(5) = WorksheetFunction.Transpose(Range("B2:F2"))
With Range("I3:M7")
.Formula = "=I$2-$H3"
.Value = .Value
For Each c In .Cells
If c.Value = 0 Then
Range(c.Address) = 9999
Else
Range(c.Address) = Abs(c.Value)
End If
Next c
Mm = WorksheetFunction.Min(.Cells)
Debug.Print Mm
Set rng = .Find(Mm)
Debug.Print rng.Row, rng.Column
End With
End Sub
mfg
Anzeige
AW: VBA
12.06.2017 11:58:27
JoWE
Hallo,
danke für die Idee! Ich war auf der Suche nach einer Formellösung.
Dein Code läuft bei mir in einen Fehler bei If c.Value = 0 Then.
Gruß
Jochen
AW: VBA (verbessert)
12.06.2017 14:57:55
Fennek
Hallo,
dieser Code ist zwar nicht viel kürzer, der Aufbau ist es schon. Mit einer kleinen Änderung läuft das auch für beliebig viele Cars.

Sub V2()
Dim Mm As Double
Dim R As Integer, Sp1 As Integer, Sp2 As Integer
R = 2 'hier die Schleife über viele cars
Mm = 9999
For i = 2 To 5
For j = 3 To 6
If i  j Then
T = Abs(Cells(R, i) - Cells(R, j))
If T 
mfg
AW: VBA (verbessert)
12.06.2017 15:48:32
JoWE
Hallo,
der Code ist príma und macht genau das was er soll.
Und berücksichtigt schon die Möglichkeit mehrerer identischer Rundenzeiten.
Mal sehen was Werner noch an Lösung parat hat :-)
Danke
Jochen
Anzeige
AW: nachgefragt ...
12.06.2017 14:50:06
...
Hallo Jochen,
... kann es denn nicht auch zwei oder drei identische Rundenzeiten geben? In diesem Fall ergeben sich mit Daniels Vorschlag momentan noch inkorrekte Zeit-Ergebnisse.
Außerdem sollte ja gemäß Deiner Fragestellung die entsprechenden Zeiten markiert werden. Dafür bietet sich die bedingte Formatierung an. Aber welche Werte sollen markiert werden, wenn in Deinem Beispiel in F3: 00:07:57 stünde? In diesem Fall müssten mE die drei Zellen: C3;E3 und F3 markiert werden. Oder?
Abschließende Frage: Du gibst als Excelversion "alle" an. Soll denn die Lösung für alle Versionen gelten, auch für ältere als Excel2010?
Gruß Werner
.. , - ...
Anzeige
AW: nachgefragt ...
12.06.2017 15:35:17
JoWE
Hallo Werner,
es kann natürlich identische Rundenzeiten geben und vermutlich können auch mal mehr als zwei oder drei gleiche Rundenzeiten auftreten. Insbesondere dann wenn es insgesamt sogar 21 Runden werden (glücklicherweise werden die Rundenzeiten elektronisch gemessen und in die Tabelle geschrieben!!). Und ja, dann sollten die gleichen Zeiten natürlich auch markiert werden. Die Markierung habe ich mit der bed. Formatierung unter Zuhilfenahme von Daniels Formelergebnissen (in Hilfsspalten) schon gemacht. Schöner wäre es, dies direkt mit der bed. Formatierung zu machen. Und weiter gedacht wäre es auch noch interessant die geringsten Abstände zwischen den Rundenzeiten der bis zu 6 Autos zu ermitteln.
Die Excel-Version sollte größer 2007 sein.
Hast Du eine andere Lösung parat?
Gruß
Jochen
Anzeige
AW: daraus ergeben sich zunächst neue Fragen ...
12.06.2017 16:18:11
...
Hallo Jochen,
... es soll bei mehr als einem Auto trotzdem die geringsten Differenzen je Auto ermittelt werden? Dafür hätte ich momentan eine Lösungsformel für die bedingte Formatierung. Doch zur Auswertung "... geringsten Abstände zwischen den Rundenzeiten der bis zu 6 Autos" soll diese dann überlagernd stattfinden? Und diese nur je Runde oder Runden-übergreifend?
Den VBA-Code von Fennek hab ich jetzt nicht getestet. Wenn er aber, wie Du schreibst, schon das macht, was Du willst, dann brauch ich mich wohl nicht weiter damit zu beschäftigen.
Gruß Werner
.. , - ...
Anzeige
AW: daraus ergeben sich zunächst neue Fragen ...
12.06.2017 17:01:00
JoWE
Werner,
danke dass Du Dich weiter mit meiner Herausforderung herumschlagen willst.
Ja ich benötige weiterhin die geringsten Differenzen je Auto.
Zusätzlich will ich die geringsten Rundenzeiten Auto- und Rundenübergreifend auswerten.
Es handelt sich um eine Modellautorennbahn bei dem ein Fahrer alle Fahrzeuge testet. Und wir wollen erreichen, das nur möglichst gleichwertige Autos bei einem echten Rennen gegeneinander fahren. So ist es dann tatsächlich möglich, die Qualitäten der Fahrer untereinander zu vergleichen.
Der Code von Daniel ist gut.
Aber ich bin weiter auf der Suche nach einer Formellösung.
Viele meiner Freunde können mit VBA nichts anfangen und da ist schon Excel und das Anwenden von Formeln Herausforderung genug.
Gruß
Jochen
Anzeige
AW: dazu ...
12.06.2017 17:41:51
...
Hallo Jochen,
... zunächst muss ich Dich korrigieren: der VBA-Code war hier von Fennek eingestellt gewesen.
Meine Zusatzfragen "... überlagernd ... nur je Runde oder Runden-übergreifend?" war möglicherweise nicht eindeutig genug, so dass ich Deine Antwort auch wiederum nicht eindeutig interpretieren kann.
Vielleicht wird es klarer, wenn Du schreibst bzw. "händisch" aufzeigst, welche Zellen in meinem nachfolgenden erweiterten kleinem Beispiel (in der bis dato jetzt lediglich die Auswertung je Auto vorgenommen wurde) für die Auto übergreifende Auswertung "markiert" werden sollen.
Solltest Du heute noch antworten, dann komme ich möglicherweise nicht dazu, heute noch darauf zu reagieren.
Gruß Werner
.. , - ...
Anzeige
AW: dazu ...
12.06.2017 18:20:21
JoWE
...melde mich morgen wieder...
bis Dahin.
Gruß
Jochen
AW: dazu ...
13.06.2017 08:18:38
JoWE
Guten Morgen Werner,
Du sprichst von einem "nachfolgenden erweiterten kleinem Beispiel", welches leider nicht nachgefolgt ist :-)
Ich habe mich gestern nochmal mit unserem Team unterhalten.
Wir benötigen eigentlich nur die Auswertung pro Auto. Die aber als Formellösung mit Markierung der kürzesten Abstände zwischen den Rundenzeiten, wie schon eingangs meiner Anfrage beschrieben.
Über meine zusätzlich angedachten Erweiterungen sind wir uneins, daher stellen wir das zurück.
Danke für Deine Mühe und Geduld.
Gruß
Jochen
Anzeige
AW: dann ...
13.06.2017 08:56:17
...
Hallo Jochen,
... für 21 Runden (also bis Spalte V) mit folgender bedingter Formatierung für $B$3:$V$8.
Die benannte Formel Diff muss bei aktivierter Zelle B3 definiert werden und kann dann so in einem beliebigen Tabellenblatt im gleichen Adressbereich eingesetzt werden. Einer Zelle zur Ermittlung der Differenzzeit braucht es somit nicht, diese kann aber bei Bedarf mit =Diff in der jeweiligen Zeile ausgegeben werden.
Die bedingte Formatierungsformel ist möglicherweise noch optimierbar aber sie tut es auch so.
Bei evtl. Rückfragen dazu kann ich wahrscheinlich erst am Nachmittag antworten.
 ABCDEF
1 Runde 1Runde 2Runde 3Runde 4Runde 5
2      
3Car100:09:4800:07:5800:06:5900:07:5900:07:57
4Car200:09:4300:07:5900:06:5500:09:4600:06:59
5Car300:07:5800:06:5900:07:5900:07:5900:06:55
6Car4     
7Car5     
8Car600:09:4800:08:4800:08:4800:09:4600:08:48

Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
B31. / Formel ist =(ISTZAHL(VERGLEICH(RUNDEN(B3+Diff;7);RUNDEN($B3:$V3;7);))+ISTZAHL(VERGLEICH(RUNDEN(B3-Diff;7);RUNDEN($B3:$V3;7);)))*((Diff>0)+(ZÄHLENWENN($B3:$V3;B3)>1))Abc
Namen in Formeln
ZelleNameBezieht sich auf
B3Diff=AGGREGAT(15;6;KGRÖSSTE(!$B3:$V3;ZEILE(!A$1:A$20))-KGRÖSSTE(!$B3:$V3;ZEILE(!A$2:A$21));1)
Namen verstehen

Gruß Werner
.. , - ...
Anzeige
AW: dann ...
13.06.2017 09:36:43
JoWE
Hallo Werner,
das ist Klasse! Meinen (unseren) herzlichsten Dank.
Jetzt versuche ich erst einmal die Formeln zu begreifen.
Ob sich noch Rückfragen ergeben wirst Du hier erfahren :-)
Gruß
Jochen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige