열의 값을 확인하는 중입니다. true인 경우 다른 열의 동일한 행을 확인하고 비어 있지 않은 경우 개수를 계산합니다.

열의 값을 확인하는 중입니다. true인 경우 다른 열의 동일한 행을 확인하고 비어 있지 않은 경우 개수를 계산합니다.

직원 스프레드시트가 있습니다. A열은 부서 유형(판매, 인사, 급여 등) 목록입니다. B열은 평가가 완료된 날짜이며, 완료되지 않은 경우 공백입니다. 특정 부서 유형(예: "판매")에 대한 부서 열을 확인하고 "판매"와 같으면 평가 열의 해당 행을 확인하고 날짜 수를 계산하는 함수를 원합니다. 그런 다음 다른 모든 부서 유형에 대해 복제합니다. 따라서 "판매" 예의 경우 직원이 4명이고 평가 날짜가 2명인 경우 결과는 "2"가 됩니다. 다른 부서 유형과 관련된 B열의 날짜를 계산하는 것을 원하지 않습니다.

열 A - 부서 . . . . - HR - 판매 - HR - 급여 - 판매 - 판매 - 판매 .

B 열 - 값 매김- 2015년 1월 7일 - 2015년 8월 7일 - 2015년 6월 7일 - "공백" - "공백" - 2015년 3월 7일 - "공백" -

답변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 편집기를 닫고 스프레드시트로 돌아갑니다. 이제 DEPTAPPCOUNTExcel 내장 함수처럼 함수를 사용할 수 있습니다 . 부서 열이 A2에서 A7까지이고 평가 날짜가 =DEPTAPPCOUNT("Sales", A2:A7, B2:B7)B2 에서 B7에 있는 경우 이 기능이 작동하려면 계산된 열이 부서 열 바로 오른쪽에 있어야 합니다. -공백 평가 날짜. Sales다른 부서에서 계산하려면 첫 번째 매개변수(텍스트)를 원하는 대로 조정하세요 .

XLSMExcel 2007 이상을 사용하는 경우 워크시트를 (매크로 사용) 형식 으로 저장해야 합니다 .

사용되지 않음에도 불구하고 사용자 지정 함수에 전달해야 하는 이유가 궁금하다면 CountRange날짜 열이 변경되면 Excel에서 개수를 다시 계산하도록 해야 합니다. 즉, 추가 범위를 함수에 전달하면 Excel 계산에 종속성이 생성됩니다.

관련 정보