Notifications
Clear all

CountIfs

9 Posts
4 Usuários
0 Reactions
1,657 Visualizações
(@wilerson)
Posts: 6
Active Member
Topic starter
 

Bom dia.

Prezados sou iniciante em vba e gostaria de ajuda, estou tentando contar as datas entre um determinado período (exemplo: > 01/12/2016 <= 31/12/2016), para tanto estou utilizando o método WorksheetFunction.CountIfs, porem o valor retornado e sempre 0.
Arquivo em anexo. Desde já obrigado

'Se for igual a dia faça ................

If Cells(4, 1).Value = 1 Then

NEnc = W1.Cells(L1 + 1, 2)

If Cells(L1 + 1, 2).Value <> "" Then

QProd = WorksheetFunction.CountIfs(PRange, PDia, ERange, NEnc)

Cells(L1 + 1, C1) = QProd

Else
End If

' Se for igual a mês faça................

ElseIf Cells(4, 1).Value = 3 Then

InicioMes = CDate(W1.Cells(1, 3).Value)

FinalMes = CDate(W1.Cells(1, 4).Value)

'Set NVRange = ERange.Find(what:=NEnc, LookIn:=xlValues, lookat:=xlWhole, searchOrder:=xlByRows, searchdirection:=xlNext)

NEnc = W1.Cells(L1 + 1, 2)

If Cells(L1 + 1, 2).Value <> "" Then

MProd = WorksheetFunction.CountIfs(ERange, NEnc, PRange, "" > "" & InicioMes, PRange, "" <= "" & FinalMes)

Cells(L1 + 1, C1).Select

Else
End If

 
Postado : 07/12/2016 6:49 am
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Por acaso vc está ciente de q o Excel tem funções q fazem essa contagem como DATADIF() ?

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 07/12/2016 6:55 am
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Vc está com referência circular em 'Cronograma-Fisico'!Q485
=SE(OU(E($L485<=Q$9;$M485>=Q$9);E($M485>=Q$8;$M485<=Q$9));SE(SOMA(P485:$Q485)>=$K485;0;$K485/$A486);0)

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 07/12/2016 7:05 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Eu ainda estou a entender o que você precisa.

Sub tete()
'Fonte:https://www.techonthenet.com/excel/formulas/datediff.php
   MsgBox DateDiff("d", Range("E2"), Range("F2"))
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/12/2016 7:09 am
(@wilerson)
Posts: 6
Active Member
Topic starter
 

Bom dia,

Prezados obrigado pelo retorno.

DJunqueira

Realmente não conhecia a função DATAIF(), obrigado.

alexandrevba e DJunqueira

Mas como conseguir realizar a contagem nas colunas "Data." e "Enc." da planilha "BD", com esta função já que preciso utilizar 3 critérios, (exemplo: >01/12/2016, <= 31/12/2016 , "João") para obter o resultado na planilha Comparativo.

Mas uma vez obrigado.

 
Postado : 07/12/2016 7:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Há várias formas.

Use uma formula em uma célula qualquer

=SUMPRODUCT(--($A$2:$A$13=D2);--($B$2:$B$13>=E2)+($C$2:$C$13<=F2))

Via VBA verifique esse valor e faça o que precisa fazer.

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 07/12/2016 8:08 am
(@mprudencio)
Posts: 2749
Famed Member
 

Nao entendi bem o objetivo mas acho que uma tabela dinamica bem organizada pode resolver.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 07/12/2016 8:40 am
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Se for contar por linha eu usaria a fórmula abaixo:

=SOMARPRODUTO(($K$24:$GM$24="Data:")*(K40:GM40>0)*($L$24:$GN$24="Enc.")*(L40:GN40="João"))

Vc pode substituir o zero com as datas q vc quiser.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 07/12/2016 10:43 am
(@wilerson)
Posts: 6
Active Member
Topic starter
 

DJunqueira

Obrigado pela sugestão, obtive êxito.

Muito obrigado a todos que deram suas sugestões.

Abraço.

 
Postado : 08/12/2016 1:25 pm