"Spezialformel" gesucht
Halli Hallo!
Vielleicht kann mir einer der Profis aus diesem Forum dankenderweise bei meiner Fragestellung behilflich sein.
Da mein Problem sehr schwer zu beschreiben ist, habe ich gleich mal eine Musterdatei samt Frage hochgeladen.
http://www.netupload.de/detail.php?img=a0f79223fea456c09397bc883de52082.XLS
Hoffe, alles ausführlich genug beschrieben zu haben.
Tom
Antwort schreiben
Antwort 1 von BJBJBJBJB vom 06.03.2019, 11:42 Options
sorry, aber ich habs leider nicht verstanden.
Bei was hast du ein problem. für was stehen die einzelnen ziffern und was soll warum rauskommen?
Antwort 2 von Tomschi vom 06.03.2019, 12:52 Options
Hi!
Dachte ich mir schon, dass es etwas schwierig wird.
Daher auch die Musterdatei.
In Spalte O rechne ich mir die Monate zwischen Bezugsdatum (bezgdat) und Auszugsdatum (auszdat) aus. --> Falls null = Referenzdatum
Innerhalb eines Bereiches (z. B. 7?) kann es nunmehr mehrere Auszugsdaten geben.
Wenn sich die Bereichsnummer von z. B. 70 auf 71 ändert, dann soll auf jeden Fall die Monatsanzahl von 71 (= 7) stehen.
Problematisch ist nunmehr die Ermittlung des Wertes aus der Bereichsnummer 70.
Dieser ist - wie in meinem Muster dargestellt - 40 UND 33. Damit die Gesamtzahl von 40 nicht überschritten wird, soll nur 33 übernommen werden und dort wo 40 steht = null eingetragen werden.
Tom
Antwort 3 von Aliba vom 06.03.2019, 17:23 Options
Hi Tom,
keine Ahnung, ob ich das richtig verstanden habe, Deine gewünschten Ergebnisse erhalte ich mit der Formel, aber ich denke fast, so einfach ist es nicht.
Guckst Du hierCU Aliba
Antwort 4 von Aliba vom 06.03.2019, 17:24 Options
Hi, nochmal ich.
Die Formeln sind in Spalte T
CU ALiba
Antwort 5 von Tomschi vom 07.03.2019, 06:57 Options
Guten Morgen ALiba!
Ich hab keine Ahnung was genau Deine Formel wie macht, aber sie liefert exakt jenes Ergebnis, welches ich für meine Tabelle benötige.
Vielleicht hast Du mal kurz Zeit um mir die Formel zu erklären.
VIELEN DANK!
Tom
Antwort 6 von Aliba vom 07.03.2019, 09:01 Options
Hi Tom,
dann will ich mal versuchen, die Formel zu erklären:
{=WENN(O2+ZEILE()/1000=MIN(WENN($B$2:$B$41=B2;$O$2:$O$41+ZEILE($2:$41)/1000));O2;"")}
Das Kernstück der Formel ist:
{=MIN(WENN($B$2:$B$41=B2;$O$2:$O$41))}
Hierbei handelt es sich um eine Array-Formel, was man an den geschweiften Klammern erkennt.
Diese Formeln werden normal erfasst und mit STRG+SHIFT+ENTER abgeschlossen.
Mit der Normalformel:
=MIN($O$2:$O$41) würde der kleinste Eintrag im Bereich O2:O41 ermittelt.
Als Arrayformel mit der Bedingung WENN($B$2:$B$41=B2 werden nun nur die Werte aus O2:O41 herangezogen, die in SPalte B der Nrn. aus B2 entprechen.und aus diesen Werte der MIN - Wert, also der kleinste Wert ermittelt.
Wenn Du nun diese Kernformel in eine Spalte der Zeile 2 schreibst und dann nach unten kopierst, würden nun in jeder Zeile der MIN - Wert zu dem Eintrag aus Spalte B geliefert. Also beim ersten Auftauchen von Nr. 70 würde die 33 und nicht die 40 geliefert.
Nun benötigen wir den Wert nur einmal und zwar dann, wenn er zum ersten Mal auftaucht.
Das erledigt nun die Abfrage:
Wenn der Wert in O2 + Zeile()/1000, was in Deinem Beispiel dann 4,0002 wäre, dem kleinsten Wert aus SPalte O+Zeilennummer/1000 entspricht und zwar von allen Werten, die in Spalte B dem Eintrag in B2 entsprechen, dann liefere den Eintrag aus Spalte O
In O3 wäre der Wert 4,0003
in O4 dann 4,004
usw...
für die Nr. 70 hast du nun mehrere Einträge mit 40 und mit 33
Durch die Abfrage in der Formel wird dann als kleinster Wert eben die erste Zeile in der die 33 steht erkannt.
Ich hoffe mal ich konnte das einigermaßen verständlich rüberbringen.
Sollte eigentlich auch funzen, wenn die Nrn. in Spalte B unsortiert sind.
CU Aliba
Antwort 7 von Tomschi vom 07.03.2019, 09:46 Options
Hallo Aliba!
Danke für die Erklärung.
Werde mir diese mal in Ruhe durch den Kopf gehen lassen.
Nochmals herzlichen Dank für Deine Unterstützung!
Tom