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

731
Kevin

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

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

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

1

1 ответ на вопрос

1
Ben N

Откройте редактор 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. Если столбец вашего отдела охватывает от А2 до А7 (а даты оценки - от В2 до В7 - подсчитанный столбец должен находиться справа от столбца отдела, чтобы эта функция работала), введите, =DEPTAPPCOUNT("Sales", A2:A7, B2:B7)чтобы получить количество записей о продажах с не Сроки оценки. Настройте первый параметр ( Salesтекст) по желанию для подсчета в других отделах.

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

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

Спасибо, но как насчет того, когда столбцов больше, чем только два? Так что, если столбец A = Dept и столбец F = оценка. С столбцами БЕ полны данных, таких как имена, супервизор и т. Д. Kevin 8 лет назад 0
@Kevin Обновите «1» в вызове «Смещение», чтобы оно соответствовало количеству столбцов, в которых столбец «Оценка» находится справа от столбца «Отдел». В вашей ситуации вы должны установить его на `4`. Ben N 8 лет назад 0
Thanks so much Ben, it's working now for me. One more thing if you don't mind. I duplicated the formula so that another cell now counts the next column (column G). So I changed the integer to 4 for the first formula, then to 5 for the second formula. I also renamed the second forula to DEPTAPPCOUNT2. This works except that the first forumla recalulates when I update the date field, but the second formula does not. Do you know why this is occurring and do you have a fix? Thanks again. Kevin 8 лет назад 0
Даже хотя параметр `CountRange` в коде не используется, вам нужно передать в него диапазон ячеек даты, чтобы Excel воспринял эти ячейки как зависимости ячейки, содержащей вызов` DEPTAPPCOUNT2`. Ben N 8 лет назад 0

Похожие вопросы