Tenho uma planilha de funcionários. A coluna A é uma lista de tipos de departamento (vendas, RH, folha de pagamento, etc.). A coluna B é a data em que a avaliação foi concluída ou em branco se estiver incompleta. Gostaria de uma função que verificasse a coluna Dept para um determinado tipo de Dept (por exemplo, "Vendas") e se fosse igual a "Vendas", verificasse as linhas correspondentes da coluna Avaliação e contasse quantas datas. Eu então replicaria para todos os outros tipos de departamento. Assim, para o exemplo “Vendas”, se houver quatro funcionários e dois tiverem data de avaliação, o resultado seria “2”. Observando que não quero contar as datas na Coluna B relacionadas aos outros tipos de Departamento.
Coluna A - Departamento . . . . - RH - Vendas - RH - Folha de pagamento - Vendas - Vendas - Vendas .
Coluna B - Avaliação- 07/01/2015 - 07/08/2015 - 07/06/2015 - "Em branco" - "Em branco" - 07/03/2015 - "Em branco" -
Responder1
Abra o Editor VBA e escolha Módulo no menu Inserir. Cole o seguinte no campo de texto resultante:
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
Pressione o botão Salvar na barra de ferramentas e feche o Editor VBA para retornar à sua planilha. Agora você pode usar a DEPTAPPCOUNT
função exatamente como as funções intrínsecas do Excel. Se a coluna do seu departamento abranger de A2 a A7 (e as datas de avaliação estiverem em B2 a B7 - a coluna contada deve estar imediatamente à direita da coluna do departamento para que esta função funcione), insira =DEPTAPPCOUNT("Sales", A2:A7, B2:B7)
para obter o número de entradas de vendas com não -datas de avaliação em branco. Ajuste o primeiro parâmetro (o Sales
texto) conforme desejado para contar em outros departamentos.
Se você estiver no Excel 2007 ou mais recente, precisará salvar a planilha no XLSM
formato (habilitado para macro).
Para aqueles que estão se perguntando por que CountRange
deve ser passado para a função personalizada mesmo que não seja usada, é necessário que o Excel recalcule a contagem se a coluna de data for alterada. Em outras palavras, passar o intervalo extra para a função cria uma dependência nos cálculos do Excel.