2017-12-06 7 views
0

enter image description hereExcel: Identifizieren 2+ separate Instanzen von Werten in einer Reihe für einen gegebenen Bereich

Das Bild oben ist ein Tabellenkalkulations der Mitarbeiter auf der linken und die Tage des Jahres über der Spitze. Die Wochenenden sind in blau.

Was ich für jede Reihe für einen bestimmten Bereich von Daten erreichen möchte, ist, zwei oder mehr getrennte Vorkommen von Abwesenheit zu identifizieren. Einige der Codes qualifizieren sich als eine Abwesenheit, d. H. IL - Krankheit, PR - persönliche Gründe, einige nicht, d. H. DE - Zahnarzt, MW - Hebamme.

Die obere Zeile ist ein gutes Beispiel für eine Zeile mit zwei oder mehr separaten Abwesenheitszei- chen.

Eine Abwesenheit ist nicht auf einen Tag beschränkt, also wenn es gleichzeitige Abwesenheiten ein bisschen wie die MA-Beispiele gäbe, würden sie als eine Abwesenheit zählen. Obwohl MA nicht zählen würde, wie es für Mutterschaft steht.

Entschuldigung, dass ich keinen Code zur Verfügung stelle, weil ich feststecke, wo ich anfangen soll. Selbst ein Hinweis in die richtige Richtung wäre hilfreich.

+0

Ich schlage vor, es als ein Protokoll zu schreiben - so etwas wie 'für jede Beurlaubung, die in der ersten Liste ist, gibt es eine weitere Beurlaubung von einem oder mehreren Tagen getrennt, die keine Wochenenden sind'. Es kann Leute geben, die eine Formel Lösung anbieten können, aber IMO VBA wäre einfacher. –

Antwort

2

Müssen Sie Wochenenden in Ihren Daten haben?

Ich habe eine Lösung mit SUMPRODUCT, aber es behandelt keine Abwesenheiten über Wochenenden als ein einzelner Block (z. B. der MA-Block). Here is a screenshot of some dummy data based on your request.

Die Formeln in Spalt AI sind auf diesem in AI3 basiert:

=SUMPRODUCT((B3:AG3<>"-")*(B3:AG3<>"")*(A3:AF3="-")*1)+SUMPRODUCT((B3:AG3<>"-")*(B3:AG3<>"")*(A3:AF3="")*1) 

Der erste Term in der ersten SUMPRODUCT Formel bestimmt, welche Spalten in dem Bereich (B bis AG) keine Abwesenheiten (durch den Strich angedeutet).

Der zweite Term bestimmt, welche Spalten Wochenenden (Leerzeichen) sind.

Der dritte Term legt fest, welche vorherigen Spalten (halbe Tage) keine Abwesenheiten haben (Bindestrich) - es wird eine leere Spalte vor den Daten benötigt (dh Spalte A wie in diesem Beispiel gezeigt - dies kann ausgeblendet werden)).

Die zweite Summenproduktformel macht dasselbe, aber der dritte Term behandelt, wo der vorherige Halbtag ein Wochenende war (leer).

Wie Sie sehen können, funktioniert dies für alle außer dem einzigen Block von MA Abwesenheit. Wenn Sie die Wochenendspalten entfernen, könnte die Formel vereinfacht werden.

+0

Ich denke das ist eine gute Grundidee wert. Ich kann mir vorstellen, wie man mit den Wochenenden entweder mit networkdays() oder dem Testdatum für einen Wochentag umgehen kann, aber es würde eine Menge Komplexität hinzufügen. –

Verwandte Themen