Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 formule matricielle

  • Initiateur de la discussion Initiateur de la discussion SPARKLETOF
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SPARKLETOF

XLDnaute Junior
Bonjour,

j'ai un fichier excel dans lequel se trouve des infos concernant l'année, n° de dossier, n° échantillons et type d'analyses.
Je cherche un moyen d'obtenir le nombre de dossiers par type d'analyses et par année....
J'ai une formule en matricielle qui me sert compter le nombre de dossiers différents pour une année mais en ajoutant ces conditions je suis perdu...
Quelqu'un peut m'aider ?
Je joins le fichier (un exemple, car le miens possède environ 20000 lignes...)
Merci par avance.
Pour info je suis avec Excel 2016
SKF
 

Pièces jointes

Merci beaucoup, je teste çà sur mon fichier original et je donne des nouvelles !
Tout fonctionne, en revanche, cela demande pas mal de ressource et çà rame pas mal du coup !
 
Dernière édition:
Hello
un essai par macro
VB:
Sub Compter()

Dim tablo() As Variant
Set dico = CreateObject("Scripting.dictionary")

With Sheets("Feuil2")
    Fin = .UsedRange.Rows.Count
    tablo = .Range("A2:D" & Fin).Value
End With

For i = LBound(tablo, 1) To UBound(tablo, 1)
    If Not dico.exists(tablo(i, 2) & "-" & tablo(i, 1)) Then
        dico.Add tablo(i, 2) & "-" & tablo(i, 1), tablo(i, 4)
    End If
   
Next i

'Recherche 1==>Eau - 2013
TypeSol = "eau"
annee = 2013
Rech = 0
For Each ele In dico.keys
    If CInt(Split(ele, "-")(1)) = annee And UCase(dico.Item(ele)) = UCase(TypeSol) Then
        Rech = Rech + 1
    End If
Next ele
Range("G3") = Rech

'Recherche 2==>Eau - 2014
TypeSol = "eau"
annee = 2014
Rech = 0
For Each ele In dico.keys
    If CInt(Split(ele, "-")(1)) = annee And UCase(dico.Item(ele)) = UCase(TypeSol) Then
        Rech = Rech + 1
    End If
Next ele
Range("H3") = Rech

'Recherche 3==>Sable - 2013
TypeSol = "Sable"
annee = 2013
Rech = 0
For Each ele In dico.keys
    If CInt(Split(ele, "-")(1)) = annee And UCase(dico.Item(ele)) = UCase(TypeSol) Then
        Rech = Rech + 1
    End If
Next ele
Range("G4") = Rech

'Recherche 4==>Sable - 2014
TypeSol = "Sable"
annee = 2014
Rech = 0
For Each ele In dico.keys
    If CInt(Split(ele, "-")(1)) = annee And UCase(dico.Item(ele)) = UCase(TypeSol) Then
        Rech = Rech + 1
    End If
Next ele
Range("H4") = Rech

'Recherche 3==>Terre- 2013
TypeSol = "Terre"
annee = 2013
Rech = 0
For Each ele In dico.keys
    If CInt(Split(ele, "-")(1)) = annee And UCase(dico.Item(ele)) = UCase(TypeSol) Then
        Rech = Rech + 1
    End If
Next ele
Range("G5") = Rech

'Recherche 4==>Terre- 2014
TypeSol = "Terre"
annee = 2014
Rech = 0
For Each ele In dico.keys
    If CInt(Split(ele, "-")(1)) = annee And UCase(dico.Item(ele)) = UCase(TypeSol) Then
        Rech = Rech + 1
    End If
Next ele
Range("H5") = Rech

End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
817
Réponses
12
Affichages
1 K
Réponses
18
Affichages
2 K
Réponses
5
Affichages
978
Membre supprimé 341069
M
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…