Nombre de valeurs identique avec plusieurs critères

Résolu
athregal -  
DevAxia Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je dois exploiter une base de donnée et je cherche a déterminer le nombre de cellule identique présent pour deux stations. J'aimerais s'il est possible avoir une fonction qui permette de calculer le nombre d'espèce identique en fonction de quatre paramètres station A à l'année B * Station C à l'année D. Mon fichier excel se présentent de la façon suivante :
.
Station......Espèce.....Année
A...............Z............2010
A...............Z............2011
A...............Y............2010
B...............Z............2010
B...............X............2011
B...............W............2012
C...............Z............2010
C...............Y............2010
C...............Y............2011
.
Il faudrait donc que je trouve pour le comparaison entre station
A 2010, B 2010 = 1 cellule identique
A 2011, B 2010 = 0 cellule identique
A 2010, C 2010 = 2 cellules identiques
.
Merci par avance à toutes et à tous.

A voir également:

1 réponse

DevAxia Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour,
Directement dans Excel, je ne crois pas que ce soit possible, mais vous pourriez créer une fonction personnalisée dans votre éditeur VBA pour faire la fonction voulue.

Êtes-vous familier avec ça ? sinon, je peux vous indiquer comment faire.

0
DevAxia Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   2
 
Corrigez moi si je me trompe, mais si je comprends bien votre description de problème, est-ce que votre 2e exemple
A 2011, B 2010 = 0 cellule identique
ne devrait pas être plutôt
A 2011, B 2010 = 1 cellule identique

Si oui, voici une fonction personnalisée qui pourrait faire le travail.
Vous créez un module dans l'éditeur VBA et y insérez cette fonction.
Vous pouvez ensuite l'utiliser dans Excel en inscrivant
=CellulesIdentiques(table,station1,annee1,station2,annee2)

N'oubliez pas d'indiquer "résolu" si ça règle votre situation.
Bonne fin de journée


Option Explicit
Function CellulesIdentiques(rTableSource As Range, Station1 As String, Annee1 As Long, Station2 As String, Annee2 As Long) As Long

    Dim RowId1 As Long, RowId2 As Long
    Dim Espece As String
    
    CellulesIdentiques = 0
    For RowId1 = 1 To rTableSource.Rows.Count
        If rTableSource.Cells(RowId1, 1).Value = Station1 And _
           rTableSource.Cells(RowId1, 3).Value = Annee1 Then
            
            Espece = rTableSource.Cells(RowId1, 2).Value
            
            For RowId2 = 1 To rTableSource.Rows.Count
            
                If rTableSource.Cells(RowId2, 1).Value = Station2 And _
                   rTableSource.Cells(RowId2, 3).Value = Annee2 And _
                   rTableSource.Cells(RowId2, 2).Value = Espece Then
            
                    CellulesIdentiques = CellulesIdentiques + 1
                End If
                    
            Next RowId2
        End If
    Next RowId1

End Function
0
athregal
 
Bonjour,
Désolé de ne pas avoir pu vous répondre plus rapidement. Effectivement pour l'exemple, c'était bien 1 cellule. Je viens d'essayer votre code VBA et il fonctionne parfaitement.
Merci beaucoup pour votre aide.
0
DevAxia Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   2
 
Au plaisir!
0