Spalte auf Wert prüfen. Wenn wahr, dieselbe Zeile in einer anderen Spalte prüfen und zählen, wenn nicht leer

Spalte auf Wert prüfen. Wenn wahr, dieselbe Zeile in einer anderen Spalte prüfen und zählen, wenn nicht leer

Ich habe eine Tabelle mit Mitarbeitern. Spalte A ist eine Liste der Abteilungsarten (Verkauf, Personalwesen, Lohnbuchhaltung usw.). Spalte B ist das Datum, an dem ihre Beurteilung abgeschlossen ist, oder leer, wenn sie unvollständig ist. Ich hätte gerne eine Funktion, die die Spalte „Abteilung“ für eine bestimmte Abteilungsart (z. B. „Verkauf“) prüft und, wenn sie „Verkauf“ ergibt, die entsprechenden Zeilen der Spalte „Beurteilung“ prüft und zählt, wie viele Daten vorhanden sind. Ich würde dies dann für alle anderen Abteilungsarten wiederholen. Wenn es also im Beispiel „Verkauf“ vier Mitarbeiter gibt und zwei ein Beurteilungsdatum haben, wäre das Ergebnis „2“. Dabei ist zu beachten, dass ich nicht möchte, dass die Daten in Spalte B gezählt werden, die sich auf die anderen Abteilungsarten beziehen.

Spalte A - Abteilung . . . . - Personalwesen – Vertrieb – Personalwesen – Lohn- und Gehaltsabrechnung – Vertrieb – Vertrieb – Vertrieb .

Spalte B - Bewertung- 1.7.2015 - 8.7.2015 - 6.7.2015 - "Leer" - "Leer" - 3.7.2015 - "Leer" -

Antwort1

Öffnen Sie den VBA-Editor und wählen Sie dann im Menü Einfügen die Option Modul. Fügen Sie Folgendes in das resultierende Textfeld ein:

Function DEPTAPPCOUNT(Dept As String, Range As Range, CountRange As Range) As Integer
    Dim count As Integer
    For Each rCell In Range
        If rCell.Text = Dept Then
            If rCell.Offset(0, 1).Text <> "" Then count = count + 1
        End If
    Next
    DEPTAPPCOUNT = count
End Function

Klicken Sie auf die Schaltfläche Speichern in der Symbolleiste und schließen Sie dann den VBA-Editor, um zu Ihrer Tabelle zurückzukehren. Sie können die DEPTAPPCOUNTFunktion jetzt wie die internen Excel-Funktionen verwenden. Wenn Ihre Abteilungsspalte von A2 bis A7 reicht (und die Beurteilungsdaten in B2 bis B7 liegen – die gezählte Spalte muss sich direkt rechts neben der Abteilungsspalte befinden, damit diese Funktion funktioniert), geben Sie ein, =DEPTAPPCOUNT("Sales", A2:A7, B2:B7)um die Anzahl der Verkaufseinträge mit nicht leeren Beurteilungsdaten zu erhalten. Passen Sie den ersten Parameter (den SalesText) nach Wunsch an, um andere Abteilungen mitzuzählen.

Wenn Sie Excel 2007 oder höher verwenden, müssen Sie das Arbeitsblatt im XLSM(makrofähigen) Format speichern.

Für diejenigen, die sich fragen, warum CountRangean die benutzerdefinierte Funktion übergeben werden muss, obwohl sie nicht verwendet wird: Sie ist erforderlich, damit Excel die Anzahl neu berechnet, wenn die Datumsspalte geändert wird. Mit anderen Worten: Durch die Übergabe des zusätzlichen Bereichs an die Funktion entsteht eine Abhängigkeit in den Berechnungen von Excel.

verwandte Informationen