Hallo hullen,
Ich habe alles übernommen und angepasst, außer bei der Sortierung der Hilfsspalten habe ich nicht mit dem Formelteil KGRÖSSTE($C$11:$C$46;ZÄHLENWENN($C$11:$C$46;">"&I2) gearbeitet, sondern mit KKLEINSTE($AD$11:$AD$46;ZEILE()-1) - mit anderen Spaltenangaben, weil die Tabelle größer ist. Bringt dasselbe Ergebnis, ist kürzer und - ich verstehe die Formel

Bei deiner Formel ist mit nicht klar, wieso sie den GRÖSSTEN Wert nimmt und trotzdem aufsteigend sortiert.
Is mich jetscht och nich kloar. Abba wenn deine funzt, ist doch jut.
Spaß beiseite, Ernst wird jetzt eingeschult

.
Ich werde gleich noch auf dein und mein Formelsystem genauer eingehen.
Auf einer anderen Tabellenseite sollen Zellen mit "schulfrei" markiert werden, wenn in anderen Zellen das Wort "Entfall" auftaucht. Ansonsten erscheint die Zahl der Unterrichtsstunden, die ich mit sverweis ranhole. Warum klappt die Formel nicht?
Nun ja, wenn Du mit SUCHEN oder FINDEN arbeitest, dann musst Du erstmal überprüfen ob z.B. SUCHEN einen Fehler zurück gibt und diesen dementsprechend abarbeiten. Hier MUSS also die Logik umgekehrt werden. Und in deinem Falle bedeutet das, wenn Fehler dann führe die SVERWEIS aus, ansonsten gib die Meldung *Schulfrei* aus.
Code: Alles auswählen
=WENN(ISTFEHLER(SUCHEN("Entfall";B3));SVERWEIS(B2;$E2:$F9;2;0);"schulfrei!")
das ist aber ein Problem womit sich schon sehr viele herumgeschlagen haben.
jetzt kommt das zweite Problem.
Du meinst wohl PROBLEME plural, und nicht singular!
Fangen wir mit AG2 an.
Code: Alles auswählen
=WENN(SUMMENPRODUKT(AF2>=AD$5:AD$10;AF2<=AE$5:AE$10)=1;"Ferien";WENN(ZÄHLENWENN(AX$2:AX$30;AF2);SVERWEIS(AF2;$AX$2:$AY$30;2;0);WENN(SUMMENPRODUKT(AF2>=AD$33:AD$46;AF2<=AE$33:AE$46)=1;INDEX($AC$33:$AD$46;VERGLEICH($AF2;$AD$33:$AD$46;1);1);WENN(WOCHENTAG(AF2;2)>5;"WE";"j"))))
Und da interessiert uns nur dieser Teil davon.
Code: Alles auswählen
WENN(SUMMENPRODUKT(AF2>=AD$33:AD$46;AF2<=AE$33:AE$46)=1
In dem Zellbereich AD33 bis AE36 hast Du ein Kuddelmuddel-kauderwelsch an Datumen drin. Einmal mit einem VON und BIS Termin, und dann wieder Einzeltermin, und dann wieder VON BIS.
Hast Du das schon wieder vergessen, das beim Einsatz von SUMMENPRODUKT -{so wie zu sehen}- in BEIDEN Spalten ein Datum drin stehen MUSS! Da darf es KEINEN Einzeltermin mit nur einem Datum geben. Also nur 21.11.16 ist in diesem Falle
verboten. Stattdessen in AD35 21.11.16 UND in AE35 21.11.16. Natürlich gilt das für alle Einzeltermine.
Warum in AH2 das hier?
Code: Alles auswählen
=WENN(AF2<=$Z$5;"1";WENN(AF2<=$Z$6;"2";WENN(AF2<=$Z$7;"3";WENN(AF2<=$Z$8;"4";"-" ))))
Warum setzt Du die Zahlen in doppelte Anführungszeichen und machst aus ihnen Text? Nur damit Du dann in AM2 mit diesem hier
aus Text wieder einen Wert machen musst. Der Sinn ist mir einfach Rätselhaft. Und ich finde ihn blödsinnig.
Mach lieber in AH2 das.
Code: Alles auswählen
=WENN(AF2<=$Z$5;1;WENN(AF2<=$Z$6;2;WENN(AF2<=$Z$7;3;WENN(AF2<=$Z$8;4;"-" ))))
Und in AM2 das
So, und nun zu deinem Formelsystem und meinem.
Du setzt diese Formel ein,
und wunderst dich das Du Probleme z.B. in AP hast. Anscheind verstehst Du dein System selber nicht wirklich, oder ich verstehe es jetzt so kurz vorm zu Bette gehen nicht.
Und aus diesem Grunde muss ich mein Formelsystem, welches ich ja nicht erklärt hatte, mal grob beschreiben.
Also mein System besteht aus 2 in Worten ZWEI Formeln. Und zur Erklärung nimm dir meine letzte Beispieldatei *funzt net_und funktioniert doch_v2.ods*.
Die erste ist recht simpel.
Damit wird das kleinste Datum aus dem genannten Bereich herausgefischt.
Auf zur 2. Formel, die Du nicht so richtig verstehst.
Code: Alles auswählen
=WENN(MAX($C$11:$C$46)=MAX(I$2:I2);"";KGRÖSSTE($C$11:$C$46;ZÄHLENWENN($C$11:$C$46;">"&I2)))
Dieser Teil ist verständlich. Aber zur Sicherheit, dennoch ein paar Worte dazu.
Wenn das größte [MAX($C$11...)] Datum gleich das größte [MAX(I$2...)] ist, dann mach nix.
Es werden also 2 unabhängige "Spalten" auf ihrem größten Wert hin verglichen.
Weiter zu dem eigentlich nicht verständlichen Teil.
Der Datenbereich $C$11:$C$46 ist klar.
- Einmal *Daten* für KGRÖSSTE
- und einmal *Bereich* für ZÄHLENWENN
KGRÖSSTE braucht 2 Parameter damit es funktioniert.
1. Daten
2. Rang_K
Punkt 1 haben wir.
Punkt 2 wird durch ZÄHLENWENN geholt.
Und ZÄHLENWENN macht jetzt nix anderes, als zu zählen wie oft ein Datum im *Bereich* größer ist als das Datum in I2. Und deshalb lautet die *Kriterien* für ZÄHLENWENN.
Das ist die Schreibweise für "größer als" in ZÄHLENWENN.
Bei einer WENN-Abfrage würde das einfach so aussehen.
Also in meiner besagten Beispieldatei gibt jetzt ZÄHLENWENN in I3 die 14 zurück. Und dadurch würde jetzt der KGRÖSSTE-Teil ausgeschrieben wie folgt aussehen.
In dem Datenbereich $C$11:$C$46 befinden sich insgesamt 15 Datume. Das "kleinste" Datum wurde ja schon in I2 durch MIN herausgefischt. Es bleiben jetzt also noch 14 Datume übrig. Das größte Datum ist dort der 15.06.17. Und das 14 gößte Datum ist der 01.11.16.
Anderes Beispiel.
In I8 gibt ZÄHLENWENN die 9 zurück, un dementsprechend würde der KGRÖSSTE-Teil ausgeschrieben wie folgt aussehen.
Und das 9 größte Datum wäre dort dann der 27.02.2017.
Mein Formelsystem arbeitet wohl mit 2 Formeln, aber dafür kann man es immer so ansetzen das das "kleinste" Datum von den großen immer oben steht. Doch das hilft dir jetzt auch nicht sofort weiter, da Du wohl die Unterichtstage pro Quartal LÜCKENLOS aufsteigend sortiert haben möchtest. Stimmt doch, oder!?
Aber auch dafür habe ich einen Lösungsvorschlag.
Was Du brauchst ist einen Dynamischen Zellbereich der sich nach der Quartalseinteilung richtet. Also mit anderen Worten, das 1. Quartal geht von AL2 bis AL49 und das 2. gfeht von AL50 bis AL112 usw.
Aber wie bekommst Du einen solchen Datenbereich automatisch erstellt?
Nun, das geht eigentlich relativ einfach. Dafür werden lediglich VERGLEICH und INDIREKT benötigt.
Für das 1. Quartal nehmen wir in AM1 folgende Formel.
Code: Alles auswählen
="AL"&VERGLEICH(1;$AH$1:$AH$374;0)&":"&"AL"&VERGLEICH(2;$AH$1:$AH$374;0)-1
Die spuckt uns nun folgenden Text aus:
AL2:AL49
Und jetzt kommt mein Formelsystem wieder zum Zuge. Doch es sieht jetzt ein wenig anders aus, da nun INDIREKT eingesetzt wird.
1. Formel in AM2
2. Formel in AM3
Code: Alles auswählen
=WENN(MAX(INDIREKT(AM$1))=MAX(AM$2:AM2);"Gruß balu";KGRÖSSTE(INDIREKT(AM$1);ZÄHLENWENN(INDIREKT(AM$1);">"&AM2)))

Diese Formel runterziehen bis .....
Willst Du wissen wie wir das z.B. mit dem 2. Quartal machen?
Logisch willstDu das. Und das geht sehr einfach.
In AO1
Code: Alles auswählen
="AL"&VERGLEICH(2;$AH$1:$AH$374;0)&":"&"AL"&VERGLEICH(3;$AH$1:$AH$374;0)-1
vergleiche jetzt mal diese mit der Formel in AM1.
Der Unterschied müsste dir eigentlich schon auffalen.
Und was glaubst Du was in AO2 und in AO3 rein kommt?
Ganz einfach!
Formel aus AM2 und AM3 einfacvh da reinkopieren, und fädddisch.
Und die anderen beiden Quartale gehen genau so schnell und einfach über die Bühne. Bis auf das 4. Quartal. Aber den Unterschied siehst Du ja in der angehängten Datei.
Und nun geh ich bubu machen.
Guts nächtle
balu