tearsofsun
Goto Top

Formelvereinfachung - Excel

Hallo guten Morgen,

ich habe eine sehr große Excel Formel, die ich allerdings noch um Abfragen erweitern muss, solangsam nähere ich mich der Formellängenbegrenzung.

Kann man die Formel auch irgendwie einfacher gestalten wenn mehrere Bedinungen zu einem Filter stimmen.

=WENN(ISTZAHL(VERGLEICH("S52";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S77";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S57";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S81";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S59";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S53";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S54";D3:HZ3;0));"Zugestellt";WENN(ISTZAHL(VERGLEICH("S29";D3:HZ3;0));"Zeitmangel";WENN(ISTZAHL(VERGLEICH("S05";D3:HZ3;0));"Platzmangel";WENN(ISTZAHL(VERGLEICH("S32";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S36";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S37";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S38";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S39";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S40";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S42";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S43";D3:HZ3;0));"AV";WENN(ISTZAHL(VERGLEICH("S44";D3:HZ3;0));"AV";WENN(ISTFEHLER(VERWEIS(42;1/ZÄHLENWENN(D3:HZ3;"*"&{"S64";"S64J"}&"*");{"In Zustellung";"in Zustellung"}));"NiZ";VERWEIS(42;1/ZÄHLENWENN(D3:HZ3;"*"&{"S64";"S64J"}&"*");{"In Zustellung";"in Zustellung"}))))))))))))))))))))  


Also wenn ich mehrere Treffer für den Filter "Zugestellt" hätte, oder zusätzlich einen Filter setzen lassen würde wenn mehrere bedingungen wahr wären für "Zugestellt" + "AV"
formel

Content-ID: 569520

Url: https://administrator.de/forum/formelvereinfachung-excel-569520.html

Ausgedruckt am: 27.12.2024 um 05:12 Uhr

eisbein
Lösung eisbein 05.05.2020 um 12:22:11 Uhr
Goto Top
Hallo,

UND/ODER Verwenden bei gleichen Resultaten "Zugestellt", "AV", ...


UND – =WENN(UND(etwas ist WAHR, etwas anderes ist WAHR), Dann_Wert, Sonst_Wert)

ODER – =WENN(ODER(etwas ist WAHR, etwas anderes ist WAHR), Dann_Wert, Sonst_Wert)

NICHT – =WENN(NICHT(etwas ist WAHR), Dann_Wert, Sonst_Wert)


https://support.office.com/de-de/article/verwenden-der-wenn-funktion-mit ...

Falls immer noch zu lang, die Formelergebnisse über mehrere (ausgeblendete) Spalten verteilen und in der finalen Formel zusammenfassen.

Gruß
eisbein
Tearsofsun
Tearsofsun 05.05.2020 um 13:38:39 Uhr
Goto Top
Fehler mit #WERT#
=WENN(ODER(D3:HZ3="S52";D3:HZ3="S77");"Zugestellt";"NiZ")  


Anzeige stimmt nicht da eigentlicher Suchbereich der angeforderten Werte im Bereich D3 bis HZ3 liegen
=WENN(ODER(D3="S52";D3="S77");"Zugestellt";"NiZ")  

Eigentlich möchte ich ja suche in einem Bereich D3:HZ3 nach z.b S77 S78 S79 S80 suchen und "Zustellt" oder "nicht in Zustellung" ausgeben und dann Anhängen wenn weiteres Hinzukommt z.b suche ebenfalls D3:HZ3 nach S50 S51 S52 aber gebe dafür z.b "Hallenrevision" oder "auf dem Weg" ausgeben. Darum hab ich ja oben Anfangs diese Monsterformel die ich verkleinern und zusammenfassen möchte.
143728
143728 05.05.2020 aktualisiert um 16:22:50 Uhr
Goto Top
In Folgendem Fall gibt es zwei Bezüge, MyValues beinhaltet einen Range in dem deine Suchwerte stehen und SearchArea in der der Bezug zu deinem Suchbereich hinterlegt ist (D3:HZ3). Das ganze mit STRG+SHIFT+ENTER abschließen so das es zu einer Matrix-Formel wird.
=WENN(NICHT(ISTNV(VERGLEICH(MyValues;SearchArea;0)));"Zugestellt";"Nicht zugestellt")  
So kannst du deine Kriterien z.B. in einem separaten Blatt ablegen, diese benennen und in der Formel hinterlegen. Zum erweitern brauchst du dann nur den Bereichen deine weiteren Kriterien hinzufügen. Wenn viele unterscheidliche Vergleiche vorkommen würde ich das dann doch besser über eine Custom VBA-Function abfackeln die du auch per Formel in der Zelle ansprechen kannst.
Tearsofsun
Tearsofsun 08.05.2020 um 09:14:44 Uhr
Goto Top
Guten Morgen,

ich komme der Lösung näher es passiert aber etwas was ich nicht berücksichtigt habe.

Ich bekomme die Filter die ich brauche die Formel war noch länger aber das Ergebnis passt noch nicht.
Das miese ist die Reihenfolge. Siehe Screenshot. Wie bekomme ich es hin, die Reihenfolge der Ergebnisse stehen immer von c->d->e-> usw. das die letzte gefundene Information in der Spalte genommen wird. Weil dann wären die Ergebnisse für die Filter 100% korrekt. Weil als Beispiel lt. Screen müsste die Sendung Zeile 20 eigentlich mit dem Code S64 im Filter "inZustellung stehen da es der letzte übermittelte Wert ist.

=WENN(ODER(ISTZAHL(VERGLEICH("S52*";D3:HZ3;0));ISTZAHL(VERGLEICH("S77";D3:HZ3;0));ISTZAHL(VERGLEICH("S57";D3:HZ3;0));ISTZAHL(VERGLEICH("S81";D3:HZ3;0));ISTZAHL(VERGLEICH("S59";D3:HZ3;0));ISTZAHL(VERGLEICH("S53";D3:HZ3;0));ISTZAHL(VERGLEICH("S54";D3:HZ3;0)));"Zugestellt";WENN(ISTZAHL(VERGLEICH("P10*";D3:HZ3;0));"Hallenrevision";WENN(ISTZAHL(VERGLEICH("S64*";D3:HZ3;0));"In Zustellung";"NIZ")))  
beispiel
Tearsofsun
Tearsofsun 12.05.2020 um 17:29:52 Uhr
Goto Top
Hallo,

das Problem konnte durch Tipps gelöst werden der Code für andere die Ähnliches benötigen könnten:

=WENN(ISTFEHLER(SVERWEIS(INDIREKT(ADRESSE(ZEILE();VERGLEICH(" ";D3:INDIREKT(ADRESSE(ZEILE();SUMMENPRODUKT(($D$3:$HZ$3="Rk-Nr")*SPALTE($D$3:$HZ$3))-1));-1)+3));Tabelle3!$B$4:$C$100;2;FALSCH));"FEHLER";SVERWEIS(INDIREKT(ADRESSE(ZEILE();VERGLEICH(" ";D3:INDIREKT(ADRESSE(ZEILE();SUMMENPRODUKT(($D$3:$HZ$3="Rk-Nr")*SPALTE($D$3:$HZ$3))-1));-1)+3));Tabelle3!$B$4:$C$100;2;FALSCH))  

Ich arbeite auch in mit einem zusätzlichem Tabellenblatt wo die zu suchenden Werte stehen und sich die Filter setzen müssen, von hinten das erste Ereignis das gefunden wird =Treffer und Filter setzen.