Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1820to1824
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

MATRIX-WENN-Formel mit Variablen DANN

MATRIX-WENN-Formel mit Variablen DANN
16.03.2021 04:56:03
Dennis
Hallo Zusammen,
ich bin gerade dabei eine Excel-Datei zur Arbeitsplanung zu gestallten.
Diese soll automatisch anzeigen, wenn der Planer etwas vergisst/übersieht:
  • Stundenanzahl im Monat noch nicht erreicht oder deutlich überschritten
  • Anzahl am Stück gearbeitete Tage
  • Schicht die in Urlaub reinfällt
  • Schicht ohne die benötigte Unterbrechung (also Nacht- gleich auf eine Tagschicht und umgekehrt)
  • unbesetzte Schicht
  • doppelt besetzte oder sich überschneidende Schichten
  • sich überschneidender Urlaub wird in anderer Datei angezeigt

  • Falls euch noch etwas ein Punkt einfällt, welche ein unerfahrener Planer vergessen/übersehen könnte, bin ich dankbar für jede Anmerkung^^
    Der Aufbau ist bisher folgender:
  • Ein Blatt "Data"
    hier stehen alle wichtigen Grunddaten (Personen, Feiertagsberechnung für Jahr X, Legende für die Schichten),
    welche die anderen Blätter benötigen. Zusätzlich enthält das Blatt die Erklärung der verwendeten Formeln
  • Ein Blatt "0" (für Dezember vergangenen Jahres)
  • Ein Blatt "1" (für Januar des aktuellen Jahres)

  • Jedes Monatsblatt erstellt mit Hilfe Bedingter Formatierung, automatisch das Grundgerüst des Monates:
  • wie viele Tage hat der aktuelle Monat(wie viele Spalten werden benötigt)
  • an welchen Tagen sind Feiertage und Wochenende (auch wegen Anzeige von Stunden mit Zuschlägen)
  • wie viele Mitarbeiter gibt es(wie viele Zeilen werden benötigt)

  • Es ist angedacht, das der Nutzer ein Blatt dupliziert und mit der gewünschten Monatszahl umbenennt.
    Im neuem Jahr wird Blatt 12 zu 0, so dass der Aufbau weiterhin funktioniert.
    Damit will ich erreichen, das die 13 letzten Tage des Vormonates in den neuen Monat übernommen werden,
    was zur Berechnung der Schichtübergänge, zwischen den jeweiligen Monaten, benötigt wird.
    Mein aktuelles Problem ist folgendes:
    Ich will automatisch herausfinden lassen:
  • welches die Nummer des Vergangenen Monates ist
  • wann der letzte Tag des vergangenen Monates war
  • ob an diesem, oder den davor liegenden 12 Tagen etwas eingetragen ist
  • und falls etwas an diesen Tagen eingetragen ist, der Inhalt in den Zielzellen übertragen werden soll

  • Meine bisherigen Versuche:
    {=WENN(TAG(Y$13)=TAG(SPALTE()+ZEILE(3:6));
    WENN(INDIREKT(TEIL(ZELLE("dateiname";$A$1);
    FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+SPALTE(28:31);FALSCH)="";
    "";
    INDIREKT(TEIL(ZELLE("dateiname";$A$1);
    FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+SPALTE(28:31);FALSCH));"")}
    {=WENN(TAG(Y$13)=TAG(SPALTE()+ZEILE(3:6));
    INDIREKT(TEIL(ZELLE("dateiname";$A$1);
    FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+Zeile(28:31);FALSCH);
    "")}
    Bei der nächsten Variante habe ich UND genutzt, was zwar bewirkt hat, das die Wahrheitsprüfung WAHR ausgegeben hat, beim DANN-Teil aber immer nur der niedrigste Wert genutzt wird:
    {=WENN(UND(TAG(Y$13)=TAG(SPALTE()+ZEILE(3:6)));
    INDIREKT(
    TEIL(ZELLE("dateiname";$A$1);
    FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+Zeile(28:31);FALSCH);
    "")}
    Ich könnte dies zwar ohne MATRIX zum funktionieren bringen, das würde aber eine ellenlange Formel ergeben...
    Ich danke schon einmal im Voraus für eure Hilfe (egal in welcher Form^^)

    11
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: MATRIX-WENN-Formel mit Variablen DANN
    16.03.2021 07:59:55
    ralf_b
    Moin,
    Es ist angedacht, das der Nutzer ein Blatt dupliziert und mit der gewünschten Monatszahl umbenennt. wenn du das per Makro machst,dann könntest du deine Zellen schön vorbelegen mit den Werten aus dem aktuellen Blatt, welches zur Dublizierung benutzt wird. Damit sparst du dir ne Menge Formeln.
    gruß
    rb

    AW: (D)eine Beispieldatei wäre hilfreich owT
    16.03.2021 10:54:12
    neopa
    Gruß Werner
    .. , - ...

    AW: (D)eine Beispieldatei wäre hilfreich owT
    16.03.2021 20:17:16
    Dennis
    habe hier meine Datei mit Musterdaten hochgeladen
    Hoffe die hilft weiter^^
    Hier übrigens die funktionierende Formel ohne MATRIX:
    =WENN(TAG(Y$13)=TAG(SPALTE()+6);WENN(INDIREKT(TEIL(ZELLE("dateiname";$A$1);FINDEN("]"; ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+31;FALSCH)="";""; INDIREKT(TEIL(ZELLE("dateiname";$A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE() &"S"&SPALTE()+31;FALSCH));WENN(TAG(Y$13)=TAG(SPALTE()+5);WENN(INDIREKT(TEIL(ZELLE("dateiname";$A$1); FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+30;FALSCH)="";""; INDIREKT(TEIL(ZELLE($A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE() +30; FALSCH));WENN(TAG(Y$13)=TAG(SPALTE()+4);WENN(INDIREKT(TEIL(ZELLE("dateiname";$A$1);FINDEN("]"; ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+29;FALSCH)="";""; INDIREKT(TEIL(ZELLE($A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE() +29; FALSCH));WENN(INDIREKT(TEIL(ZELLE("dateiname";$A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;2) -1&"!"&"Z"&ZEILE()&"S"&SPALTE()+28;FALSCH)="";"";INDIREKT(TEIL(ZELLE($A$1);FINDEN("]"; ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+28;FALSCH)))))
    Im ganzen besteht die Formel aus folgenden Teilen:
    1. Überprüfen ob der letzte Tag des Vormonates der 31.,30.29. oder 28. ist
    dies erreiche ich durch [TAG(Y$13)=TAG(SPALTE()+4-6)]
    Wenn es nicht 4-6 ist (29-31) kann es nur der 28. sein.
    2. Überprüfen ob an diesem Tag gearbeitet wurde (Inhalt in diesem Feld)
    dies ich durch die benennungsform der Arbeitsblätter und des Formelteil [INDIREKT(TEIL(ZELLE("dateiname";$A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;2)-1&"!"&"Z"&ZEILE()&"S"&SPALTE()+(28-31);FALSCH)=""]

    Anzeige
    AW: nachgefragt ...
    17.03.2021 09:41:31
    neopa
    Hallo Dennis,
    ... wo genau steht die Formel in Deiner Datei und was willst Du damit ermitteln?
    Gruß Werner
    .. , - ...

    AW: nachgefragt ...
    20.03.2021 07:03:34
    Dennis
    Hallo Werner, sry für die späte Antwort, habe aber z.Z. nur auf meiner Arbeitsstelle einen funktionierenden PC.
    Stehen tut die Formel in der Datei bisher nur in Y14.
    Gedacht ist Sie für jede 2. Zeile im Spaltenbereich M bis Y.
    Ermitteln will ich damit 3 Dinge:
    1. Tabellenblattname des vorherigen Monates
    2. Welches sind die letzten 13 Tage des vorherigen Monates
    3. wurde in den letzten 13 Tagen des vorherigen Monates etwas eingetragen und wenn ja, was.

    Anzeige
    AW: dazu nun ...
    20.03.2021 11:57:56
    neopa
    Hallo Dennis,
    ... folgende Formeln:
    1. =TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;31)-1
    2. der 13. letzte Tag des Vormonat ergibt sich zu:
    =TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;31)-1 und damit ab dort
    3. =INDEX(14:14;VERGLEICH(MONATSENDE(INDIREKT(TEIL(ZELLE("dateiname";A1);FINDEN("]";ZELLE("dateiname";A1))+1;31)-1&"!A2");0)-13+SPALTE(A1);$13:$13;0)) und dies nach unten und rechts kopieren.
    Gruß Werner
    .. , - ...

    AW: dazu nun ...
    20.03.2021 12:31:26
    Dennis
    Hallo Werner,
    die Formel an sich,
    was Sie tun soll und was ich damit erreichen will,
    hat bei mir bereits funktioniert.
    Ich wollte lediglich wissen,
    ob man das ganze per MATRIX-Formel evtl. kürzer und eleganter gestalten kann.
    aber vielen Dank für deine Antwort^^

    Anzeige
    AW: dazu nun ...
    20.03.2021 19:09:02
    neopa
    Hallo Dennis,
    ... meine angegebenen Formeln entsprechend zusammengesetzt ist doch nicht halb so lang, wie die von Dir aufgezeigte und erfüllt doch damit Deine Zielstellung.
    Bei mir in Y14:
    =INDEX(INDIREKT("'"&(TEIL(ZELLE("dateiname";$A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;31)-1)&"'!ZS1:S60";);VERGLEICH(MONATSENDE(INDIREKT(TEIL(ZELLE("dateiname";M1);FINDEN("]";ZELLE("dateiname";$A$1))+1;31)-1&"!A2");0)-13+SPALTE(M1);INDIREKT("'"&(TEIL(ZELLE("dateiname";$A$1);FINDEN("]";ZELLE("dateiname";$A$1))+1;31)-1)&"'!13:13");))
    und diese nach links kopieren und danach in Zeile 16, 18 ...
    Gruß Werner
    .. , - ...

    Anzeige
    AW: dazu nun ...
    21.03.2021 18:10:29
    Dennis
    Hallo Werner,
    schon mal viel übersichtlicher, danke dafür^^
    aber was muss ich hinzufügen/ändern,
    damit statt "0" "" bei einem nicht vorhandenem Wert angezeigt wird?
    Und die Ursprüngliche Frage bleibt (rein aus Neugierde) ob hierfür eine MATRIX-Formel verwendet werden kann.

    AW: 0-Werte nicht anzeigen zig Möglichkeiten ...
    21.03.2021 18:54:37
    neopa
    Hallo Dennis,
    ... alle 0-Werte können so nicht dargestellt werden:
    - mit Deaktivierung der Option: "in Zellen mit Nullwerte ein 0 anzeigen" - ist generell im Arbeitsblatt!
    - mit benutzerdefinierten Zahlenformat z.B. so: 0;-0; Zellen bezogen
    - mit bedingter Formatierung Zellen bezogen
    - mit entsprechender Formeldefinition, im vorliegenden Fall z.B. einfach &"" an die Formel anhängen.
    Gruß Werner
    .. , - ...

    Anzeige
    AW: hatte noch vergessen ...
    21.03.2021 19:06:48
    neopa
    Hallo nochmal,
    ... Dir auf Deine Eingangsfrage: "... ob hierfür eine MATRIX-Formel verwendet werden kann" Auskunft zu geben. Du meinst damit sicherlich eine klassische Matrixformel, die durch einen Klammerung mit {} gekennzeichnet ist. Oder?
    Die vorliegende INDEX()-Formel ist eine Matrixformel, sie bedarf nur keines spez. Eingabeabschlusses für deren Ergebnisauswertung. Natürlich könnte auch aus dieser eine {}-Formel gemacht werden, dies würde aber keinen zusätzlichen Nutzeffekt geben. Und vom Grundsatz her kannst Du davon ausgehen (von Ausnahmen mal abgesehen), dass eine Formel die ohne den spez. Matrixformelabschluss auskommt effektiver auswertet.
    Gruß Werner
    .. , - ...
    Anzeige

    315 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige