Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

kleinste Differenz berechnen.


Betrifft: kleinste Differenz berechnen. von: Christian
Geschrieben am: 11.10.2017 17:48:25

Hallo an euch alle,

habt ihr irgendeine Idee, mein problem zu lösen?
Bitte eine Lösung ohne Hilfsspalten, eine mit Hilfsspalten habe ich selber hinbekommen.

Ich habe 2 Spalten mit Daten (A und B) wobei in Spalte B immer das jeweils frühere Datum steht.

Ich suche nun die geringste Differenz zwischen 2 Daten, die in derselben Zeile stehen.

Oder anders ausgedrückt ich suche die Ausgabe die im Beispiel in G1 und H1 steht, will aber gleichzeitig die Hilfsspalten C bis F einsparen.

Gibt es da eine Lösung?

Danke für den Rat Christian

https://www.herber.de/bbs/user/116882.xlsx

  

Betrifft: Zeilennummer der kleinsten Differenz von: lupo1
Geschrieben am: 11.10.2017 18:09:36

=REST(KKLEINSTE(INDEX(A1:A18-B1:B18+ZEILE(A1:A18)%%;);1);1)/1%%

Weiter kommst Du mit INDEX und Konsorten.


  

Betrifft: AW: Zeilennummer der kleinsten Differenz von: Christian
Geschrieben am: 11.10.2017 20:53:23

Hallo Lupo,

deine Formel gibt bei mir #WERT! aus.
Leider weiß ich auch nicht, was ich dann mit Index und Konsorten anfangen soll.

Gruß
Christian


  

Betrifft: AW: kleinste Differenz berechnen. von: Robert Werner
Geschrieben am: 11.10.2017 18:11:23

Hallo Christian,

{=MIN(A1:A18-WENN(B1:B18<>"";B1:B18;0))}

müsste das Ergebnis liefern. Dabei handelt es sich um eine Matrix-Formel, d. h. die geschweiften Klammern nicht mit eingeben sondern die Eingabe mit <Strg> <Shift> <Enter> abschließen. Eventuell muss das Zahlenformat wieder auf Standard gesetzt werden.

Gruß
Robert


  

Betrifft: AW: kleinste Differenz berechnen. von: Christian
Geschrieben am: 11.10.2017 20:54:35

Hallo Robert, das liefert das Ergebnis in F1, aber ich wollte ja auch Spalte F einsparen.


  

Betrifft: AW: kleinste Differenz berechnen. von: {Boris}
Geschrieben am: 11.10.2017 19:19:47

Hi Christian,

D:
{=MIN(DATEDIF(WENN(B1:B18<>"";B1:B18;0);A1:A18;"D"))}

Y:
{=MIN(DATEDIF(WENN(B1:B18<>"";B1:B18;0);A1:A18;"Y"))}

YD:
{=MIN(DATEDIF(WENN(B1:B18<>"";B1:B18;0);A1:A18;"YD"))}

Alle als {ARRAYformeln} erfassen mit Strg+Shift+Enter!

VG, Boris


  

Betrifft: AW: kleinste Differenz berechnen. von: Christian
Geschrieben am: 11.10.2017 20:56:20

Hallo Boris,

dein Vorschlag funktioniert. Aber weshalb die Matrixformeln? Bei mir gibt es auch ohne Matrix 17 und 35 aus?

Gruß
Christian


  

Betrifft: AW: kleinste Differenz berechnen. von: {Boris}
Geschrieben am: 11.10.2017 21:02:11

Hi Christian,

Aber weshalb die Matrixformeln? Bei mir gibt es auch ohne Matrix 17 und 35 aus?

...weil der kleinste Wert (also der gewünschte Treffer) zufällig in der ersten Zeile liegt.
Liegt er woanders, kommst Du um die { } nicht herum ;-)

VG, Boris


  

Betrifft: AW: kleinste Differenz berechnen. von: Christian
Geschrieben am: 11.10.2017 21:06:53

Hallo Boris,

danke für die Info.
Allerdings ist mir aufgefallen, das bei deiner Lösung es ebenfalls das Problem gibt das Daniel ansprach.

Deine Formeln betrachten Y und YD getrennt voneinander. Wenn ich B2 in den 5.5.95 ändere, wäre Zeile 2 die gesuchte Zeile und die gesuchte Differenz 16 JAhre 340 Tage. Deine Formeln betrachten das aber getrennt und geben 16 Jahre 35 Tage aus.

Gruß
Christian


  

Betrifft: AW: oder mit 2 Matrixfunktion(alität)sformeln ... von: ... neopa C
Geschrieben am: 11.10.2017 19:35:28

Hallo Christian,

... einfach so:

In G1:

=AGGREGAT(15;6;DATEDIF(B1:B99;A1:A99;"Y")/(A1:A99>0);1)

in H1:
 =AGGREGAT(15;6;DATEDIF(B1:B99;A1:A99;"YD")/(A1:A99>0);1)
Die Matrixfunktion(alität)sformeln bedürfen im Gegensatz zu den klassischen Matrixformeln keines spez Formelabschlusses.

Gruß Werner
.. , - ...


  

Betrifft: ich wusste es und hatte es gareade auf dem Schirm von: Matthias L
Geschrieben am: 11.10.2017 19:41:43

nur bin ich nicht so schnell wie Du, Werner ...
Übrigens hat mir Deine damalige Erklärung zu Aggregat um Einiges weitergebracht, danke hier nochmal.
:-]
Gruß Matthias


  

Betrifft: AW: freut mich auch, danke für Deine Info owT von: ... neopa C
Geschrieben am: 11.10.2017 20:02:05

Gruß Werner
.. , - ...


  

Betrifft: AW: das ist vermutlich zu einfach... von: Daniel
Geschrieben am: 11.10.2017 20:24:58

... weil es um die kleinste Differenz der vollständigen Datumswerte geht.
du betrachtest hier aber die Ergebnisse von DateDif(..."Y") und DateDif(..."YD") getrennt, dh sie können aus unterschiedlichen Zeilen mit unterschiedlichen Datumswerten stammen und das ist laut beschreibung nicht gewünscht.
(mögliche Lösung siehe Antwort an Christian)

Gruß Daniel


  

Betrifft: AW: erst im Nachgang eindeutig ... von: ... neopa C
Geschrieben am: 12.10.2017 12:32:53

Hallo Daniel,

... denn laut "gewünscht" war: "ich suche die Ausgabe die im Beispiel in G1 und H1 steht, will aber gleichzeitig die Hilfsspalten C bis F einsparen" Und offensichtlich hatte nicht nur ich es so gesehen.

Aber Du hast insofern Recht, dass ich hätte weiter denken können, weil Deine Interpretation natürlich naheliegend(er) ist.

Gruß Werner
.. , - ...


  

Betrifft: AW: oder mit 2 Matrixfunktion(alität)sformeln ... von: Christian
Geschrieben am: 11.10.2017 20:57:46

Hallo Werner,

soweit funktioniert das.
Hab aber noch nicht gelesen, was Matthias und Daniel dazu schreiben.

Gruß
Christian


  

Betrifft: AW: kleinste Differenz berechnen. von: Daniel
Geschrieben am: 11.10.2017 20:21:42

Hi

probiers mal mit diesen Formeln:

G1: =GANZZAHL(AGGREGAT(15;6;DATEDIF(B1:B18;A1:A18;"Y")+DATEDIF(B1:B18;A1:A18;"YD")/1000;1))
H1: =REST(AGGREGAT(15;6;DATEDIF(B1:B18;A1:A18;"Y")+DATEDIF(B1:B18;A1:A18;"YD")/1000;1);1)*1000

die Formeln von neopa sehen ähnlich aus, rechnen aber nicht richtig weil sie die DateDifs(..."Y") und DateDif(..."YD") getrennt betrachten.

dh hasst du zwei Datumskombinantionen in der Liste die folgendes Ergeben:
Y: 17 YD: 15
Y: 18 YD: 10

so würde die Formel von neopa dir 17 und 10 als Ergebnis ausgeben und nicht 17 und 15

Gruß Daniel


  

Betrifft: AW: kleinste Differenz berechnen. von: Christian
Geschrieben am: 11.10.2017 21:02:56

Hallo Daniel,

du hast recht, wenn ich B2 auf den 5.5.95 ändere müssten die Formeln in Zeile 2 die kleinste Differenz finden nämlich 16 Jahre und 340 Tage.
Deine Formeln funktionieren.

Sorry Werner ich hätte zuerst alles lesen sollen und dann auf deinen Beitrag antworten.

Danke auf jeden Fall an alle für eure Mühe

Christian


  

Betrifft: AW: dies kann man aber etwas einfacher haben ... von: ... neopa C
Geschrieben am: 12.10.2017 12:42:09

Hallo Daniel, hallo Christian,

... denn in G1 ist meine bisherige Formel

=AGGREGAT(15;6;DATEDIF(B1:B99;A1:A99;"Y")/(A1:A99>0);1) 
nach wie vor völlig ausreichend.

Für H1 würde ich dann folgende Formel vorschlagen:
=AGGREGAT(15;6;DATEDIF(B1:B99;A1:A99;"YD")/(A1:A99>0)/(DATEDIF(B1:B99;A1:A99;"Y")/(A1:A99>0)=G1);1) 

Gruß Werner
.. , - ...


Beiträge aus den Excel-Beispielen zum Thema "kleinste Differenz berechnen."