Nombre de valeurs identique avec plusieurs critères

Résolu
athregal -  
DevAxia Messages postés 37 Statut Membre -
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.

1 réponse

  1. DevAxia Messages postés 37 Statut Membre 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
    1. DevAxia Messages postés 37 Statut Membre 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
    2. 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
    3. DevAxia Messages postés 37 Statut Membre 2
       
      Au plaisir!
      0