Recherche code max de colonne C pour valeurs colonne B

Bonjour,

Je cherche un code qui me permettrait de trouver, pour chaque espèce d'oiseau (colonne A, 200 espèces), l'indice maximal qui y correspond (colonne C, indice de 1 à 19) en sachant que l'on cherche le maximum de l'indice en fonction de la colonne B qui contient elle, les localisations. Il me faut donc la valeur maximale de l'indice par localisation et par espèce pour pouvoir traiter mes 240 000 données.

Cette demande est très urgente, ça serait super d'avoir une réponse très vite!!

Bonjour le forum,

JeanneetClaire a écrit :

Il me faut donc la valeur maximale de l'indice par localisation et par espèce pour pouvoir traiter mes 240 000 données.

F2 :

=MAX(SI(A:A=F2;C:C))

Formule matricielle à valider avec CTRL MAJ ENTREE

stat

Merci pour cette réponse! Malheureusement cela ne prend pas en compte les localisations... J'obtiens le max pour chaque espèce, mais pas le max pour chaque localisation pour chaque espècé... :/

Localisation :

H2 :

=SIERREUR(INDEX(B:B;EQUIV(1;(A:A=F2)*(C:C=MAX(SI(A:A=F2;C:C)));0));"***")

Formule matricielle.

index

Pour avoir la liste de chaque espèce qui a le code le plus élevé, il est plus simple de faire un filtre :

filtre

Bonsoir à tous,

A tester,

Option Explicit
Sub test()
Dim a, i As Long, w(), txt As String
    a = Sheets("feuil1").Cells(1).CurrentRegion.Value
    With CreateObject("Scripting.Dictionary")
        .CompareMode = 1
        .Item("Espèces") = VBA.Array("Espèces", "Mailles", "Code atlas")
        For i = 2 To UBound(a, 1)
            txt = Join$(Array(a(i, 1), a(i, 2)), Chr(2))
            If Not .exists(txt) Then
                .Item(txt) = VBA.Array(a(i, 1), a(i, 2), a(i, 3))
            Else
                w = .Item(txt)
                If a(i, 3) > w(2) Then w(2) = a(i, 3)
                .Item(txt) = w
            End If
        Next
        Sheets("feuil2").Cells(1).Resize(.Count, 3).Value = _
        Application.Index(.items, 0, 0)
    End With
End Sub

klin89

Bonjour,

Une proposition avec un tableau croisé dynamique.

Cdlt.

Bonjour,

Merci de ta réponse !

Comment modifie-t'on la source de données du tableau croisé dynamique afin d'y mettre mes 240000 données?

Dans le principe, je pense que ça marche, mais je ne sais pas comment l'étendre à plus grande échelle.

Merci de ton aide !

Bonjour,

Les données sont dynamiques.

Voir gestionnaire de noms et la formule du nom "Base _de_données".

Tu parles de 240.000 espèces différentes : tu ne travailles donc pas avec Excel 2003 !,

Peux-tu joindre un exemple de ton vrai classeur au format xlsx, ou xlsm et nous préciser la version Excel que tu utilises ?

A te relire

Cdlt.

Finalement c'est réglé, j'ai changé le nom "districts" par "maille" et c'est bon !

Merci infiniment de ton aide !!!!!

Rechercher des sujets similaires à "recherche code max colonne valeurs"