1

У меня есть таблица сотрудников. Столбец A - это список типов отделов (продажи, HR, заработная плата и т.д.). Столбец B - это дата, когда их оценка завершена, или пустая, если она не завершена. Я хотел бы функцию, которая проверяет столбец Dept для определенного типа Dept (например, "Продажи") и, если равно "Продажи", то проверяет соответствующие строки столбца оценки и подсчитывает, сколько дат. Я бы затем повторил для всех других типов Dept. Так, для примера "Продажи", если четыре сотрудника и двое имеют дату оценки, результатом будет "2". Отмечая, что я не хочу, чтобы он подсчитывал даты в столбце B, относящиеся к другим типам отделов.

Колонка А - кафедра , , , - HR - Продажи - HR - Расчет заработной платы - Продажи - Продажи - Продажи.

Колонка B - Оценка - 07.01.2015 - 07.08.2015 - 06.07.2015 - "Бланк" - "Бланк" - 07.03.2015 - "Бланк" -

1 ответ1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .