Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Index & KGrösste mit "oder" Funktion?

Index & KGrösste mit "oder" Funktion?
04.08.2020 11:41:57
René
Hallo zusammen,
erst einmal vielen Dank für dieses tolle Forum. Mir wurde bereits sehr oft geholfen, ohne dass ich selbst posten musste.
Nun ist es aber so weit..sorry schon mal, wenn das mit der Formatierung nicht so ganz hinhaut.
Ich habe für jeden Mitarbeiter eine Tabelle, in der Urlaub, Krank, Überstunden, Arztbesuche usw eingetragen werden.
Es gibt je Mitarbeiter ein Tabellenblatt und eine Tabelle mit Überschriften wie Kategorie, Datum Beginn, Datum Ende usw.
Also z.B. :
[Kategorie] [Datum Beginn] [Datum Ende]
Krank 27.07.2020 31.07.2020
Urlaub 03.08.2020 07.08.2020
Ich muss jeden Monatsanfang eine Auflistung für jeden Mitarbeiter machen, in der eingetragen wird, von wann bis wann der Mitarbeiter in diesem Monat abwesend war.
Aktuell sieht die Matrixformel so aus :
{=WENNFEHLER(INDEX(INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-";"")&"[Kategorie]"); KGRÖSSTE((INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-";"")&"[Kategorie]")="Urlaub") *(ZEILE(INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-";"")&"[Kategorie]"))-12); ZÄHLENWENN(INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-";"")&"[Kategorie]");"Urlaub") +1-ZEILE(H1)));"") }
Um das ganze mal zu vereinfachen hier noch ohne das ganze Indirekt und wechseln aus einer Testtabelle :
{=INDEX(W:W;KGRÖSSTE(($W$26:$W$31="Urlaub")*(ZEILE($W$26:$W$31)-0);ZÄHLENWENN($W$26:$W$32;"Urlaub") +1-ZEILE(H2))) }
In W26:31 steht nur untereinander Urlaub, Zeitkonto, Arztbesuch, Krank, Urlaub usw..
Ich müsste jetzt also zwei Auflistungen mit der Matrixformel machen, einmal für Krank und einmal für Urlaub.
Wie schaffe ich es, dass sich die Formel nicht auf ein Suchkriterium, wie z.B. "Urlaub" beschränkt, sondern ebenfalls
"Krank" mit berücksichtigt?
Ich hoffe das war einigermaßen verständlich.

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 12:19:08
SF
Hola,
ungetestet:
=INDEX(W:W;KGRÖSSTE(($W$26:$W$31={"Urlaub"."krank"})*(ZEILE($W$26:$W$31)-0); SUMME(ZÄHLENWENN($W$26:$W$32;{"Urlaub"."Urlaub"})) +1-ZEILE(H2)))
Wobei du dir mit Zeile(H2) erst den 2. Treffer anzeigen lässt.
Gruß,
steve1da
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 12:36:56
René
Hallo SF,
vielen vielen Dank!
Das ging ja deutlich schneller, als ich erwartet hätte.
So hat es dann funktioniert :
=INDEX(W:W;KGRÖSSTE(($W$26:$W$31={"Urlaub"."krank"})*(ZEILE($W$26:$W$31)-0); SUMME(ZÄHLENWENN($W$26:$W$32;{"Urlaub"."Urlaub"})) +0-ZEILE(H1)))
Zeile(H2) stand drin, weil ich nicht die Formel aus der ersten Zeile kopiert hatte, das war ein versehen ;-)
Anzeige
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 12:43:28
SF
Hola,
sorry, mein Fehler :)
{"Urlaub"."Urlaub"}
ist natürlich Unsinn.
Gruß,
steve1da
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 13:24:11
René
Hallo noch mal,
in der großen Matrixformel funktioniert es irgendwie nicht richtig.
Die Formel scheint sich bei der Zeile zu verzählen und ich kann nicht so richtig herausfinden, woran es liegt. Ändere ich die Kriterien in den geschweiften Klammern wieder nur auf "Urlaub" um funktioniert es.
So sieht die Formel aktuell aus :
{=WENNFEHLER(INDEX(INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-";"")&"[Kategorie]"); KGRÖSSTE((INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-";"")&"[Kategorie]") ={"Urlaub"."krank"."Krank > 6 Wo"})*(ZEILE(INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";""); "-";"")&"[Kategorie]"))-12);ZÄHLENWENN(INDIREKT(WECHSELN(WECHSELN(WECHSELN($J$5;" ";"");",";"");"-"; "")&"[Kategorie]");{"Urlaub"."krank"."Krank > 6 Wo"})+1-ZEILE(H1)));"") }
Er gibt mir leider als erstes den Wert aus Zeile 24 aus, müsste aber eigentlich Zeile 1 ausgeben.
Anzeige
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 13:33:36
SF
Hola,
ohne die Datei, oder eine identisch aufgebaute Beispieldatei, wird das reine Raterei.
Gruß,
steve1da
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 13:57:59
René
Ja das stimmt, ich habe die Tabelle jetzt mal zusammengestaucht und alles gelöscht, was nicht relevant ist.
Ich habe beide Beispiele eingefügt..einmal ist die Zeile richtig, einmal falsch.
Vielleicht kannst Du mir ja erneut helfen.
Vielen Dank schon einmal!
https://www.herber.de/bbs/user/139458.xlsx
AW: Index & KGrösste mit "oder" Funktion?
04.08.2020 14:39:17
René
Hallo noch mal,
ich denke ich habe den Fehler gefunden.
Am Ende der Formel muss
ZÄHLENWENN(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]");{"Urlaub"."Krank"."Krank > 6 Wo"})+1-ZEILE(H15)));"")
durch
ZÄHLENWENN(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]");"=Urlaub")+ZÄHLENWENN(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]");"=Krank")+ZÄHLENWENN(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]");"=Krank > 6 Wo")+1-ZEILE(H1)));"")
ersetzt werden.
Das geht bestimmt auch eleganter, so funktioniert es aber anscheinend.
Anzeige
AW: ja, z.B. ...
04.08.2020 14:44:30
neopa
Hallo René,
... in (D)einer Excel2010er Version in L3:
=WENNFEHLER(AGGREGAT(15;6;INDIREKT("'"&C$2&"'!D13:D99")/(LINKS(INDIREKT("'"&C$2&"'!C13:C99");3)={"Url"."kra"});ZEILE(L1));"")
und ziehend nach unten kopieren.
Diese Formel benötigt auch keinen spez. Abschluss wie eine klassische Matrixformel.
Gruß Werner
.. , - ...
AW: ergnzend dazu ...
04.08.2020 14:48:25
neopa
Hallo,
.. die Kategorie und das Endedatum kannst Du analog ermitteln oder da alternativ mit Bezug auf das ermittelte Beginndatum mittels INDEX() und VERGLEICH().
Gruß Werner
.. , - ...
AW: ergnzend dazu ...
04.08.2020 15:11:51
René
Hallo Werner,
vielen Dank, werde ich mir mal ansehen.
Ich muss allerdings direkte Angaben wie D13:D99 vermeiden,
weil die Tabelle durch Einträge, welche per VBA Oberfläche erstellt werden,
ständig ergänzt wird.
Vielen Dank und viele Grüße
René
Anzeige
AW: ergnzend dazu ...
04.08.2020 15:19:39
René
Hallo Werner,
vielen Dank, funktioniert so perfekt.
=WENNFEHLER(AGGREGAT(15;6;INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Datum Ende]")/(LINKS(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]");3)={"Url"."kra"});ZEILE(L1));"")
Für die Kategorie lässt sich das aber leider nicht verwenden, oder?
Bekomme leider nur #Zahl und #Wert als Ergebnis, wenn ich es so versuche.
=WENNFEHLER(AGGREGAT(15;6;INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]")/(LINKS(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]");3)={"Url"."kra"});ZEILE(L1));"")
Bin mit der Aggregat funktion noch nicht wirklich vertraut.
Vielen Dank jedenfalls!
Anzeige
AW: gerne und ...
04.08.2020 15:38:45
neopa
Hallo René,
... es geht natürlich auch für Kategorie. Nur dass es dann zu AGGREGAT() noch INDEX() und ZEILE() bedarf, weil ja in Kategorie keine Zahlenwerte sondern Texte stehen.
Z.B. so: in K3:

=WENNFEHLER(INDEX(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]"); AGGREGAT(15;6;ZEILE(K$1:K$99)/(LINKS(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"") &"[Kategorie]");3)={"Url"."kra"});ZEILE(L1)));"")

Gruß Werner
.. , - ...
AW: gerne und ...
04.08.2020 15:45:16
René
Hallo Werner,
das ist ja absolut traumhaft.
Wenn Du jetzt noch einen Tipp für mich hast, wie ich Ergebnisse mit irrelevantem Datum komplett ignorieren kann, bin ich Dir auf Lebenszeit dankbar ;)
Im Grunde mache ich das ja immer nur für einen Monat, ich brauche also keine Ergebnisse, die überhaupt nicht in den Zeitraum passen.
Sollte jetzt jemand von Januar bis August krank sein, benötige ich natürlich trotzdem ein Ergebnis, weil der Juli beispielsweise in dem Zeitraum enthalten ist.
Ich dachte ich mache das über die Spalte "Relevant?" Aber auf Dauer wird die Ergebnisliste mit den bisherigen Formeln unnötig lang.
Ich danke Dir vielmals!
Viele Grüße René
Anzeige
AW: geht auch ...
04.08.2020 15:54:03
neopa
Hallo René,
... der AGGREGAT()-Formelteil muss dann lediglich um die entsprechenden zusätzlichen Bedingungen erweitert werden. Ich geh jetzt allerdings erst einmal offline, melde mich dann aber heute noch einmal.
Gruß Werner
.. , - ...
AW: nun ...
04.08.2020 16:21:40
neopa
Hallo René,
... mein Termin war schnell erledigt, so dass ich Dir jetzt noch meinen Lösungsvorschlag aufzeigen kann:
In L3:
=WENNFEHLER(AGGREGAT(15;6;INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"") &"[Datum Beginn]")/(LINKS(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"") &"[Kategorie]");3)={"Url"."kra"})/(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-"; "")&"[Datum Beginn]")&lt=MONATSENDE(C$3;0))/(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"") ;"-";"")&"[Datum ENDE]")&gt=C$3);ZEILE(L1));"")
Das fettgedruckte sind die 2 zusätzlichen Bedingungen die ergänzt wurden und auch für "Ende" und "Kategorie" zu ergänzen sind.
Persönlich würde ich jedoch die wiederholenden Formelteile als benannte Formeln definieren und damit die gesamte Formel definieren und diese dann wiederum als benannte Formel definieren. So dass in der Tabelle lediglich in L3 z.B. =_Beginn stehen könnte.
Gruß Werner
.. , - ...
Anzeige
AW: nun ...
04.08.2020 16:59:20
René
Hallo Werner,
vielen Dank für den Vorschlag, aber wenn ich das richtig sehe, rutschen mir so die Mitarbeiter durch das Raster, die mehrere Monate krank sind.
Beispiel : eine Mitarbeiterin ist seit Januar krank und vorerst bis mitte August krankgeschrieben.
Das heißt die Daten sind von 01.01.2020 bis 15.08.2020.
Wenn ich nun die Abwesenheiten für Juli mache, muss sie aber darin auftauchen.
Ich habe das das so übernommen und als erstes taucht in L3 der 15.06.2020.
Hast Du das in meiner Tabelle ausprobiert?
=WENNFEHLER(AGGREGAT(15;6;INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"") &"[Datum Beginn]")/(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-";"")&"[Kategorie]") ={"Urlaub"."Krank"."Krank > 6 Wo"})/(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");",";"");"-"; "")&"[Datum Beginn]")<=MONATSENDE(C$3;0))/(INDIREKT(WECHSELN(WECHSELN(WECHSELN($C$2;" ";"");","; "");"-";"")&"[Datum ENDE]")>=C$3);ZEILE(L1));"")
Meine L3. Ich kann bei Krank nicht mit Links;3 arbeiten, weil es auch noch Krank ohne Bescheinigung gibt und die kommen nicht mit in die Liste.
Ich danke Dir vielmals für deine Mühe.
Gruß René
Anzeige
AW: Du hast es wohl noch nicht ganz umgesetzt, ...
04.08.2020 17:29:53
neopa
Hallo René,
... denn natürlich wird mit der Formel als erstes der 15.06. in "Beginn" ermittelt ist doch die Person ab da bis zum 24.7. als "krank" verzeichnet. Und genau so würde auch eine Datum 1.1.20 bis 15.8.20 gelistet werden.
Du kannst auch LINKS(...;3) in der Formel arbeiten, wenn Du anstelle "Krank o.B." z.B. "o.B krank" erfasst, wenn Du letzteres nicht ausgewertet haben möchtest. Analog müsstest Du bei Bedarf auch mit "Sonderurlaub" verfahren, wenn der entsprechend mit gelistet werden soll.
AW: Du hast es wohl noch nicht ganz umgesetzt, ...
04.08.2020 20:13:01
René
Hallo Werner,
Du hast vollkommen recht, das Ergebnis in L3 ist genau das, was passieren muss/soll.
Ich war vorhin scheinbar etwas durcheinander.
Ich baue das gleich mal in meine live Tabelle um und teste ausgiebig, sieht auf den ersten Blick aber super aus.
Sonderurlaub habe ich auch schon eingebaut, habe ich heute Mittag tatsächlich vergessen.
Das mit "Krank o.B." kann ich leider nicht ohne riesen Aufwand umändern, ich baue da lieber links;3 raus, das geht auf jeden Fall schneller :-)
Ich danke Dir vielmals für die Geduld!
Schönen Abend noch.
Gruß René
Anzeige
AW: Du hast es wohl noch nicht ganz umgesetzt, ...
04.08.2020 20:50:33
René
Hallo Werner,
herzlichen Dank, es funktioniert einwandfrei.
Darauf werde ich bestimmt weiter aufbauen, besonders mit der Aggregat-Funktion
werde ich einige meiner Matrixformeln ersetzen.
Vielen vielen Dank und einen schönen Abend noch.
Gruß René
AW: gerne; gute Entscheidung, Dir schönen Tag owT
05.08.2020 10:23:59
neopa
Gruß Werner
.. , - ...

181 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige