Проверка столбца на значение. Если да, то проверьте ту же строку в другом столбце и посчитайте, если не пусто

Проверка столбца на значение. Если да, то проверьте ту же строку в другом столбце и посчитайте, если не пусто

У меня есть электронная таблица сотрудников. Столбец A — это список типов отделов (продажи, кадры, зарплата и т. д.). Столбец B — это дата завершения их оценки или пустой, если она не завершена. Мне нужна функция, которая проверяет столбец Dept на наличие определенного типа отдела (например, «Продажи»), и если он равен «Продажи», то проверяет соответствующие строки столбца Appraisal и подсчитывает количество дат. Затем я бы повторил это для всех других типов отделов. Так, для примера «Продажи», если есть четыре сотрудника и двое имеют дату оценки, результатом будет «2». Обратите внимание, что я не хочу, чтобы она подсчитывала даты в столбце B, относящиеся к другим типам отделов.

Столбец А - Отдел . . . . - HR - Продажи - HR - Зарплата - Продажи - Продажи - Продажи .

Столбец Б - Оценка- 1/07/2015 - 8/07/2015 - 6/07/2015 - "Пусто" - "Пусто" - 3/07/2015 - "Пусто" -

решение1

Откройте редактор VBA, затем выберите «Модуль» в меню «Вставка». Вставьте следующее в полученное текстовое поле:

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

Нажмите кнопку Save на панели инструментов, затем закройте редактор VBA, чтобы вернуться в электронную таблицу. Теперь вы можете использовать функцию DEPTAPPCOUNTтак же, как встроенные функции Excel. Если столбец вашего отдела занимает от A2 до A7 (и даты оценки находятся в B2-B7 — подсчитываемый столбец должен быть непосредственно справа от столбца отдела, чтобы эта функция работала), введите , =DEPTAPPCOUNT("Sales", A2:A7, B2:B7)чтобы получить количество записей о продажах с непустыми датами оценки. Отрегулируйте первый параметр (текст Sales) по желанию, чтобы подсчитать в других отделах.

Если вы используете Excel 2007 или более позднюю версию, вам необходимо сохранить рабочий лист в XLSMформате (с поддержкой макросов).

Для тех, кто задается вопросом, почему CountRangeнеобходимо передавать пользовательской функции, даже если она не используется, это необходимо, чтобы Excel пересчитал счетчик, если столбец даты изменился. Другими словами, передача дополнительного диапазона в функцию создает зависимость в вычислениях Excel.

Связанный контент