Hallo liebe Leute,
Ich benutze für ein großes Spreadsheet eine WENN(UND abfrage. Allerdings wird die Abfrage irgendwann viel zu groß. Leider bekomme ich es selber nicht hin, die Formel etwas schlanker darzustellen.
Daher meine Frage: Kann man eine WENN(UND(ODER Formel bauen um die schachtelung zu verschlanken?
ich habe folgende Formel:
=WENN(UND(Z$2<=$I7;Z$2>$F7);"Z";WENN(UND(Z$2>=$R7;Z$2<$O7);"B";WENN(UND(Z$2>=$U7;Z$2<$R7);"A";WENN(UND(Z$2<=$J7;Z$2>$G7);"Z";WENN(UND(Z$2>=$S7;Z$2<$P7);"B";WENN(UND(Z$2>=$V7;Z$2<$S7);"A";WENN(UND(Z$2<=$K7;Z$2>$H7);"Z";WENN(UND(Z$2>=$T7;Z$2<$Q7);"B";WENN(UND(Z$2>=$W7;Z$2<$T7);"A";"")))))))))))
ich hätte gerne iwas in die Richtung:
=WENN(UND(...;...)ODER(...;...)ODER(...;...);"Z";WENN(UND(...;...)ODER(...;...)ODER(...;...);"A";WENN(UND(...;...)ODER(...;...)ODER(...;...);"B";"")
Ich würde mich total freuen, fall meine aktuelle Formel etwas eleganter werden würde da ich sonst an die Verschachtelungsgrenze bei Excel stoße.
Viele Grüße,
Markus
Hola,
erklär mal dein Vorhaben inkl. einer Beispieldatei bitte.
Gruß,
steve1da
Bei so vielen Verschachtelungen hattest Du den Vorteil einer hierarchischen Abarbeitung.
=
WENN(UND(Z$2<=$I7;Z$2>$F7);"Z";
WENN(UND(Z$2>=$R7;Z$2<$O7);"B";
WENN(UND(Z$2>=$U7;Z$2<$R7);"A";
WENN(UND(Z$2<=$J7;Z$2>$G7);"Z";
WENN(UND(Z$2>=$S7;Z$2<$P7);"B";
WENN(UND(Z$2>=$V7;Z$2<$S7);"A";
WENN(UND(Z$2<=$K7;Z$2>$H7);"Z";
WENN(UND(Z$2>=$T7;Z$2<$Q7);"B";
WENN(UND(Z$2>=$W7;Z$2<$T7);"A";"")))))))))))
Die verlierst Du nun, und die Formel könnte andere Ergebnisse bringen:
{
=
WENN(ODER(UND(Z$2<=$I7:$K7;Z$2>$F7:$H7));"Z";"")&
WENN(ODER(UND(Z$2>=$R7:$T7;Z$2<$O7:$Q7));"B";"")&
WENN(ODER(UND(Z$2>=$U7:$W7;Z$2<$R7:$T7));"A";"")} ungetestet mit
Nr. 5
Hallo,
ich glaube, dass könnte reichen:
Code:
=WENN((Z2>MIN(F7:H7))*(Z2<=MAX(I7:K7));"Z";WENN((Z2>MIN(R7:T7))*(Z2<=MAX(O7:Q7));"B";WENN((Z2>MIN(U7:W7))*(Z2<=MAX(R7:T7));"A";"")))
Sinnvoll wäre es, wenn man wüßte, was in den Zellen für Werte stehen!
Hallo Leute,
im Anhang findet Ihr die Logik in Excel:
kurze Erläuterung:
Die Werte SOP und Z sind fest. Die werte A, B, C und D können % verkürzt werden indem man die Werte in Spalte B bis E, Zeile 7-10 Anpasst. Zudem ist der SOP abstand imm konstant und kann in Zelle C1 definiert werden. Die restliche Logik ergibt sich aus Rohdaten.
Mein Ziel wäre es, die Formel in AA1 zu verschlanken, da ich für meine eigentliche Arbeit noch deutlich mehr Abfragen und Abhänigkeiten habe. Da wird die Formel dann schnell 10 Zeilen ++ lang und sieht sehr unschön aus.
Viele Grüße,
Markus
Hallo Markus
Ist das nicht das selbe Thema wie
hier?
Hallo Detlef,
ist die gleiche Tabelle, aber leicht andere Vorgaben.
@Markus,
diese Formel in Z7 und nach rechts/unten ziehen, für leere Zeilen noch eine Abfrage drum:
Code:
=WENN(MIN($F7:$W7)>Z$2;"";WENN((ZÄHLENWENN(INDEX($Y7:$CS7;KÜRZEN((Z$2-1)/24;)*24+1):Y7;"SOP")=1)*(INDEX($F7:$W7;(KÜRZEN((Z$2-1)/24;)+1)*6)>=Z$2);"Z";WAHL(REST(VERGLEICH(Z$2;$F7:$W7;1)-1;6)+1;"A";"B";"C";"D";"SOP";"")))
Hallo,
habe noch einen Fehler festgestellt. Hier die Korrektur:
Code:
=WENN($D7="";"";WENN(MIN($F7:$W7)>Z$2;"";WENN((ZÄHLENWENN(INDEX($Y7:$CS7;KÜRZEN((Z$2-1)/24;)*24+1):Y7;"SOP")=1)*(INDEX($F7:$W7;(KÜRZEN((Z$2-1)/24;)+1)*6)>=Z$2);"Z";WAHL(REST(VERGLEICH(Z$2-(MIN($F7:$W7)=0);$F7:$W7;1)-1;6)+1;"A";"B";"C";"D";"SOP";""))))
angepaßt auf Länge SOP in B1:
Code:
=WENN($D7="";"";WENN(MIN($F7:$W7)>Z$2;"";WENN((ZÄHLENWENN(INDEX($Y7:$CS7;KÜRZEN((Z$2-1)/($B$1-1);)*($B$1-1)+1):Y7;"SOP")=1)*(INDEX($F7:$W7;(KÜRZEN((Z$2-1)/($B$1-1);)+1)*6)>=Z$2);"Z";WAHL(REST(VERGLEICH(Z$2-(MIN($F7:$W7)=0);$F7:$W7;1)-1;6)+1;"A";"B";"C";"D";"SOP";""))))
Eins habe ich ganz vergessen, ich habe die Reihenfolge Deiner Spalten verändert, sonst funktioniert das nicht:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W |
5 | Beginn A1 | Beginn B1 | Beginn C1 | Beginn D1 | SOP 1 | Ende Z1 | Beginn A2 | Beginn B2 | Beginn C2 | Beginn D2 | SOP 2 | Ende Z2 | Beginn A3 | Beginn B3 | Beginn C3 | Beginn D3 | SOP 3 | Ende Z3 |
6 | | | | | | | | | | | | | | | | | | |
7 | 2 | 6 | 10 | 14 | 18 | 20 | 26 | 30 | 34 | 38 | 42 | 44 | 50 | 54 | 58 | 62 | 66 | 68 |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
(08.03.2017, 09:09)Hallo lieber Opa Edgar,ich werde mir deinen Vorschlag direkt mal anschauen und sobald ich verstanden habe was dir Formel macht, werde ich die Logik anwenden ;) schrieb: [ -> ]Danke Dir!!
VG,
Markus
BoskoBiatiHallo,
habe noch einen Fehler festgestellt. Hier die Korrektur:
Code:
=WENN($D7="";"";WENN(MIN($F7:$W7)>Z$2;"";WENN((ZÄHLENWENN(INDEX($Y7:$CS7;KÜRZEN((Z$2-1)/24;)*24+1):Y7;"SOP")=1)*(INDEX($F7:$W7;(KÜRZEN((Z$2-1)/24;)+1)*6)>=Z$2);"Z";WAHL(REST(VERGLEICH(Z$2-(MIN($F7:$W7)=0);$F7:$W7;1)-1;6)+1;"A";"B";"C";"D";"SOP";""))))
angepaßt auf Länge SOP in B1:
Code:
=WENN($D7="";"";WENN(MIN($F7:$W7)>Z$2;"";WENN((ZÄHLENWENN(INDEX($Y7:$CS7;KÜRZEN((Z$2-1)/($B$1-1);)*($B$1-1)+1):Y7;"SOP")=1)*(INDEX($F7:$W7;(KÜRZEN((Z$2-1)/($B$1-1);)+1)*6)>=Z$2);"Z";WAHL(REST(VERGLEICH(Z$2-(MIN($F7:$W7)=0);$F7:$W7;1)-1;6)+1;"A";"B";"C";"D";"SOP";""))))
Eins habe ich ganz vergessen, ich habe die Reihenfolge Deiner Spalten verändert, sonst funktioniert das nicht:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W |
5 | Beginn A1 | Beginn B1 | Beginn C1 | Beginn D1 | SOP 1 | Ende Z1 | Beginn A2 | Beginn B2 | Beginn C2 | Beginn D2 | SOP 2 | Ende Z2 | Beginn A3 | Beginn B3 | Beginn C3 | Beginn D3 | SOP 3 | Ende Z3 |
6 | | | | | | | | | | | | | | | | | | |
7 | 2 | 6 | 10 | 14 | 18 | 20 | 26 | 30 | 34 | 38 | 42 | 44 | 50 | 54 | 58 | 62 | 66 | 68 |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Hallo Lieber Opa E ;)
Die Formel funktoniert klasse und ist deutlich schlanker als meine.
Kannst du mir mal in Worten beschreiben weshalb die Formel jetzt genau erkennt in welche Zeile welcher Wert muss, damit ich mir zukünftig vielleicht selber helfen kann.
VG,
Markus