Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Countif....

10 réponses
Avatar
Denys
Bonjour =E0 tous,

Je cherche =E0 faire un Countif et je comprends pas que la r=E9ponse ne
soit pas exacte. Voici le code:

Sub Test()
Dim L As Long
Dim DerL As Long
With ActiveSheet

DerL =3D .[G65536].End(3).Row
L =3D .Range("A65536").End(xlUp).Row
.Range("A8:A" & L).Name =3D "ZN"

.Range("d5").FormulaArray =3D "=3Dcount(IF(COUNTIF(zn,zn)=3Dt2,"""",1/
COUNTIF(zn,zn))*($G$8:$G$" & DerL & " >0))"


End With
End Sub

En colonne A, c'est des dates. En colonne G, des montants $. Je veux
savoir combien il y a de montants en colonne G plus grands que $0
lorsque la date correspondante en colonne A est la m=EAme que la date
inscrite en T2.

Avec cette formule, Excel me donne 17 comme r=E9sultat alors que ce
devrait =EAtre 4. Excel ne semble pas tenir compte que je veux que les
montants dans la colonne G doivent =EAtre plus grands que $0.00

Z'auriez une id=E9e ?

Merci pour votre temps

Denys

10 réponses

Avatar
michdenis
Bonjour,

J'aurais écrit la procédure comme ceci:

(il aurait été intéressant que tu précises ce que tu cherches
à réaliser !)
'-----------------------------------
Sub Test()
Dim DerLig As Long
With ActiveSheet

With .Range("A:A,L:L")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

.Range("A8:A" & DerLig).Name = "ZN"
.Range("d5").FormulaArray = "=count(IF(COUNTIF(zn,zn)=t2," & _
""""",1/COUNTIF(zn,zn))*($G$8:$G$" & DerLig & " >0))"
End With
End With
End Sub
'-----------------------------------



"Denys" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Je cherche à faire un Countif et je comprends pas que la réponse ne
soit pas exacte. Voici le code:

Sub Test()
Dim L As Long
Dim DerL As Long
With ActiveSheet

DerL = .[G65536].End(3).Row
L = .Range("A65536").End(xlUp).Row
.Range("A8:A" & L).Name = "ZN"

.Range("d5").FormulaArray = "=count(IF(COUNTIF(zn,zn)=t2,"""",1/
COUNTIF(zn,zn))*($G$8:$G$" & DerL & " >0))"


End With
End Sub

En colonne A, c'est des dates. En colonne G, des montants $. Je veux
savoir combien il y a de montants en colonne G plus grands que $0
lorsque la date correspondante en colonne A est la même que la date
inscrite en T2.

Avec cette formule, Excel me donne 17 comme résultat alors que ce
devrait être 4. Excel ne semble pas tenir compte que je veux que les
montants dans la colonne G doivent être plus grands que $0.00

Z'auriez une idée ?

Merci pour votre temps

Denys
Avatar
michdenis
C'est plutôt : With .Range("A:A,G:G")
qui faudrait lire à la plage de With .Range("A:A,L:L")
Avatar
Denys
Bonjour Denis,

En fait, ce que je cherche à savoir, c'est que pour une date donnée
(inscrite en T2) combien de montant supérieurs à $0.00 se trouvent
dans la colonne G. Les dates correspondantes sont en colonne A.

Voici:
Colonne A Colonne G et en T2 on a 2010/02/24
2010/02/24 $0.00
2010/02/24 $50,000.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $50,000.00
2010/02/24 $0.00
2010/02/24 $25,000.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $5,000.00
2010/02/24 $0.00

La réponse devrait être 4, puisqu'il n'y a que quatre montants
supérieurs à $0 pour la date correspondante.

J'espère que c'est plus clair ainsi...

Merci

Denys
Avatar
Jacky
Bonsoir,

Sans VBA peut-être

=SOMMEPROD((A1:A17=T2)*(G1:G17>0))

En adaptant les plages qui doivent être de même dimension.
--
Salutations
JJ


"Denys" a écrit dans le message de news:

Bonjour à tous,

Je cherche à faire un Countif et je comprends pas que la réponse ne
soit pas exacte. Voici le code:

Sub Test()
Dim L As Long
Dim DerL As Long
With ActiveSheet

DerL = .[G65536].End(3).Row
L = .Range("A65536").End(xlUp).Row
.Range("A8:A" & L).Name = "ZN"

.Range("d5").FormulaArray = "=count(IF(COUNTIF(zn,zn)=t2,"""",1/
COUNTIF(zn,zn))*($G$8:$G$" & DerL & " >0))"


End With
End Sub

En colonne A, c'est des dates. En colonne G, des montants $. Je veux
savoir combien il y a de montants en colonne G plus grands que $0
lorsque la date correspondante en colonne A est la même que la date
inscrite en T2.

Avec cette formule, Excel me donne 17 comme résultat alors que ce
devrait être 4. Excel ne semble pas tenir compte que je veux que les
montants dans la colonne G doivent être plus grands que $0.00

Z'auriez une idée ?

Merci pour votre temps

Denys
Avatar
michdenis
Sub Test()
Dim DerLig As Long
With ActiveSheet
Range("A1") = "'" & Range("D9").Formula
With .Range("A:A,L:L")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A8:A" & DerLig).Name = "ZN"
.Range("d5").Formula = "=SUMPRODUCT((ZN=T2)*(L8:L" & DerLig & ">0))"
End With
End With
End Sub
Avatar
michdenis
With .Range("A:A,G:G")



"michdenis" a écrit dans le message de groupe de discussion :
#
Sub Test()
Dim DerLig As Long
With ActiveSheet
Range("A1") = "'" & Range("D9").Formula
With .Range("A:A,G:G")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A8:A" & DerLig).Name = "ZN"
.Range("d5").Formula = "=SUMPRODUCT((ZN=T2)*(L8:L" & DerLig & ">0))"
End With
End With
End Sub
Avatar
michdenis
Sub Test()
Dim DerLig As Long
With ActiveSheet
Range("A1") = "'" & Range("D9").Formula
With .Range("A:A,G:G")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A8:A" & DerLig).Name = "ZN"
.Range("d5").Formula = "=SUMPRODUCT((ZN=T2)*(G8:G" & DerLig & ">0))"
End With
End With
End Sub






"Denys" a écrit dans le message de groupe de discussion :

Bonjour Denis,

En fait, ce que je cherche à savoir, c'est que pour une date donnée
(inscrite en T2) combien de montant supérieurs à $0.00 se trouvent
dans la colonne G. Les dates correspondantes sont en colonne A.

Voici:
Colonne A Colonne G et en T2 on a 2010/02/24
2010/02/24 $0.00
2010/02/24 $50,000.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $50,000.00
2010/02/24 $0.00
2010/02/24 $25,000.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $0.00
2010/02/24 $5,000.00
2010/02/24 $0.00

La réponse devrait être 4, puisqu'il n'y a que quatre montants
supérieurs à $0 pour la date correspondante.

J'espère que c'est plus clair ainsi...

Merci

Denys
Avatar
michdenis
La procédure devrait s'écrire comme ceci :
(il y a des débuts de semaine plus difficile que d'autres)
;-))

'-------------------------------
Sub Test()
Dim DerLig As Long
With ActiveSheet
Range("A1") = "'" & Range("D9").Formula
With .Range("A:A,G:G")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
End With
.Range("A8:A" & DerLig).Name = "ZN"
.Range("d5").Formula = "=SUMPRODUCT((ZN=T2)*(G8:G" & DerLig & ">0))"
End With
End Sub
'-------------------------------



"michdenis" a écrit dans le message de groupe de discussion :
#
Sub Test()
Dim DerLig As Long
With ActiveSheet
Range("A1") = "'" & Range("D9").Formula
With .Range("A:A,L:L")
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
.Range("A8:A" & DerLig).Name = "ZN"
.Range("d5").Formula = "=SUMPRODUCT((ZN=T2)*(L8:L" & DerLig & ">0))"
End With
End With
End Sub
Avatar
Denys
Bonsoir Denis,

Merci infiniment.....et bonne chance pour le reste de la
semaine !!!! :-)

Denys
Avatar
MehdiH
Bonjour à tous,

Avec la même démarche que JJ sans VBA la formule matricielle équivalente à
la formule proposée

{=SOMME((A1:A17=T2)*(G1:G17>0)*1)}

Cordialement
MehdiH
--------------------------
"Jacky" a écrit dans le message de groupe de discussion :

Bonsoir,

Sans VBA peut-être

=SOMMEPROD((A1:A17=T2)*(G1:G17>0))

En adaptant les plages qui doivent être de même dimension.
--
Salutations
JJ


"Denys" a écrit dans le message de news:

Bonjour à tous,

Je cherche à faire un Countif et je comprends pas que la réponse ne
soit pas exacte. Voici le code:

Sub Test()
Dim L As Long
Dim DerL As Long
With ActiveSheet

DerL = .[G65536].End(3).Row
L = .Range("A65536").End(xlUp).Row
.Range("A8:A" & L).Name = "ZN"

.Range("d5").FormulaArray = "=count(IF(COUNTIF(zn,zn)=t2,"""",1/
COUNTIF(zn,zn))*($G$8:$G$" & DerL & " >0))"


End With
End Sub

En colonne A, c'est des dates. En colonne G, des montants $. Je veux
savoir combien il y a de montants en colonne G plus grands que $0
lorsque la date correspondante en colonne A est la même que la date
inscrite en T2.

Avec cette formule, Excel me donne 17 comme résultat alors que ce
devrait être 4. Excel ne semble pas tenir compte que je veux que les
montants dans la colonne G doivent être plus grands que $0.00

Z'auriez une idée ?

Merci pour votre temps

Denys