Kann jemand die Formel Komprimieren?

Hallo Leute,
Habe eine Excel Tabelle wie unten abgebildet.

Die Tabelle soll mir anhand der Eingabe des gewünschten Datum u. Artikel den Wert zum Artikel Liefern.
In G2 gebe ich das gewünschte Datum ein. Für’ Produktions Datum ein.
In H2 gebe ich die Gewünschte Artikel Nr.
In I2 erscheint mir dann der Wert des Artikels.
Mittels der Formel die Funktioniert.

    =WENN(NICHT(ISTFEHLER(VERGLEICH(H2&VERWEIS(4;1/((G2>=B2)*(G2<=C2)*((--ISTTEXT(A2))));E2);A14:A19;0)));INDEX(A14:D19;VERGLEICH(H2&VERWEIS(4;1/((G2>=B2)*(G2<=C2)*((--ISTTEXT(A2))));E2);A14:A19;0);4);WENN(VERGLEICH(H2&VERWEIS(4;1/((G2>=B3)*(G2<=C3)*((--ISTTEXT(A3))));E3);A14:A19;0);INDEX(A14:D19;VERGLEICH(H2&VERWEIS(4;1/((G2>=B3)*(G2<=C3)*((--ISTTEXT(A3))));E3);A14:A19;0);4))) 

Die Formel über Prüft

  1. ob das Produktions Datum zwischen Datum von u, Datum bis liegt. läuft von Zeile 2 bis 10 durch
  2. ob in Zelle A Zeile ein wert Steht.
  3. Vervollständigt den Artikel mit den Artikel Kürzel. von der Spalte E
  4. ob in A14 - A19 der Artikel mit Kürzel vorhanden ist.
  5. gibt dann den wert des Artikel in Zelle I2 aus.

Kann mir die angeführte Formel vereinfachen (Komprimieren)?

Moin,

wozu? Wenn ich solche Ausgeburten der Hölle trickreichenFormeln sehe, ziehe ich dreimal den Hut vor dem Verfasser und freue mich, dass sie laufen. Wenn Du nicht selbst der Verfasser bist, sehe ich eh keine Chance.

Gruß
Ralf

Hallo,
da ist wohl das gute, alte WENN() wieder einmal am Ende?
Daher die Unterscheidung Textverarbeitung, Tabellenkalkulation, Datenbanken. Manchmal ist es schwer, sich für das richtige System zu entscheiden.

rufen VBA auf den Plan.
Also:
Den Algorithmus hinter der Formel hearusarbeiten und in eine VBA-Funktion packen. Diese kann dann in der Tabelle verwendet werden. Der Vorteil: kein Problem mit Klammerebenen, übersichtlicher Programmcode.

Sollte man selbst hinbekommen, oder nicht erwarten die Lösung für „lau“ zu bekommen :wink:

Hallo,

bei solchen Formeln ist es schwer durchzublicken, was sie machen, ISTFEHLER ist für mich aber grundsätzlich ein Zeichen, dass da Fehler eingebaut sein könnten, die Funktion sollte man nicht verwenden. Außerdem sehe ich keinen Nutzen für ((–ISTTEXT())) , das liefert doch das selbe wie (ISTTEXT()) , oder übersehe ich da was?

Ist es wirklich Absicht, dass die Formel z.B. beim Datum 05.05.2017 den Wert 3 ausgibt und die Werte 1 und 4 ignoriert werden?

Erstelle am besten eine Hilfsspalte.
Als Beispiel hier eine Formel die überprüft, ob das Datum innerhalb des jeweiligen Zeitraums ist und ob ein Eintrag im Bereich A14:A19 vorhanden ist und entsprechend den jeweiligen Wert ausgibt:

=WENN(ODER(G$2<B2;G$2>C2;ZÄHLENWENN(A$14:A$19;G$2&" "&E2)=0);"keine Übereinstimmung";SVERWEIS(G$2&" "&E2;A$14:D$19;4;FALSCH)

Hinweise:

  1. Das wäre die Formel für z.B. F2. Sie ist auf die folgenden Zeilen erweiterbar.
  2. So weit ich das aus der Formel rauslese, ist dein Datumsbereich nicht zwischen Datum A und B, sondern von Datum A bis B. So ist das auch in meiner Formel umgesetzt.
  3. Die Kürzel sind teilweise mit und ohne Leerzeichen. In der Formel gehe ich davon aus, dass kein Leerzeichen vorhanden ist.

Bei der Formel für I2 kommt es darauf an, was du herausbekommen willst:

  1. Wenn immer nur eine einzige Übereinstimmung existieren würde, wäre =SUMME(Hilfsspalte) ausreichend.
  2. Wenn, genau wie bei deiner Formel, einfach das erste gefundene Ergebnis herauskommen soll, könntest du die selbe Formel nehmen und die Formel in der Hilfsspalte um das Suchkriterium ANZAHL(F$1:F1)=1 oder SUMME(F$1:F1)>0 ergänzen.
  3. Wenn du den größten oder kleinsten Wert möchtest, wäre das mit MAX oder MIN möglich.
  4. Wenn du ein anderes Kriterium hast, teile es uns bitte mit, da lässt sich bestimmt auch eine Lösung finden.

Gruß
Tobias

Hallo Tobias

Die Formel wars was ich gesucht habe,

Danke Manfred