Identification d'espèces selon critères et hierarchisation des critères

Sporoz

XLDnaute Nouveau
Bonjour,

Je possède actuellement un tableau avec des données bibliographiques sur certaines espèces de phytoplancton (pour vous cadrer un peu le thème). Dans ce tableau on trouve entre autre : valeurs max et min de longueur, de largeur, nombre max et min de pores, forme de la valve (lancéolée, courbée), etc...

Je souhaite me servir de ce tableau de données à des fins d'identification d'espèces que j'observe. Je m'explique :

En prélevant des échantillons d'eau de mer, j'effectue des observations de phytoplancton. Je note alors leur longueur, largeur, nombre de pores etc...
Je souhaiterais alors constituer un tableau qui va "checker" si ces valeurs sont comprises entre les valeurs max et min présentes dans mon tableau bibliographiques (qui référence les différentes espèces).

Ainsi, pour la première bébête que je souhaite identifier, la tableau voit que sa longueur est comprise entre les longueurs max et min connues de l'espèce 1, de même pour la largeur, et tous les autres critères, ducoup mon tableau excel me renvoit à la fin : "didonc, cette espèce que tu viens de mesurer, a de grande chance d'être l'espèce 1".

Ainsi pour tous les organismes que je mesure, j'ai une vision de quelle espèce je viens certainement de mettre en évidence.


J'ai actuellement constitué un tableau qui ajoute 1 point si la valeur mesurée est comprise entre les deux valeurs référence, ou si la forme de la pointe, ou de la valve, est la même que celle d'une espèce référencée. Ainsi pour chaque organisme mesuré, j'obtiens à la fin les 5 espèces ayant obtenus le plus de points (et cela m'aide à identifier les espèces).

Je souhaiterais optimiser ce programme, en hiérarchisant les critères. Je m'explique :
Pour le moment dès qu'un critère est OK, cela donne un point, il n'y a pas d'importance relative des critères les uns par rapport aux autres, or c'est primordial dans la justification de mon identification.

J'aimerais donc : que dans un premier temps le tableau vérifie si l'organisme, que je cherche à identifier, présente ou non un nodule central, et qu'alors il élimine de la liste tous les organismes référencés n'ayant pas de nodule central. Ainsi, petit à petit, avec une hiérarchisation que j'ai établi, je cherche à déterminée qu'elle est l'espèce que j'ai actuellement sous les yeux.

Je cherche donc à discriminé des espèces (c'est drôle dit comme ça ^^), à en éliminer certaines directement, de manière à ne pas me retrouver à la fin avec des faux positifs (par exemple une espèce n'ayant pas de nodule central, mais donc tous les autres critères collent, et ba avec le système que j'ai actuellement elle va avoir plein de points, et pourtant comme elle n'a pas de nodule central, ba ça ne peut pas être l'espèce que j'ai sous les yeux).

Je vous joint le tableau que j'ai fait actuellement :

http://cjoint.com/?AFummadZsVr (xslx)
http://cjoint.com/?AFuqzPo5e0S (xsl zippé)

Pas besoin de se focaliser au delà de A1:U16 (au delà c'est simplement des aides aux calculs). Il y a autant de feuilles que de dates de prélèvements d'eau de mer. Enfin il y a un dernière feuille contenant le tableau avec les mesures de références. Vous noterez que je n'ai pas encore pris en compte tous les critères, j'attends simplement d'établir une hiérarchisation de ces derniers.


Je vous remercie déjà de m'avoir lu, j'espère avoir été clair (concis peut être pas ^^), et j'espère que vous saurez m'aider (mais je n'en doute pas).
Merci d'avance.
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Identification d'espèces selon critères et hierarchisation des critères

Bonjour

Il suffit de pondérer tes critères, par exemple en multipliant le plus important par 10^3, puis le second par 10^2, et en laissant les derniers à 1, puis de faire ensuite une recherche avec MAX ou GRANDE.VALEUR.

Là, je n'ai pas le temps de t'aider plus. Mais cela te mettra peut être sur la voie.

@ plus
 

Sporoz

XLDnaute Nouveau
Re : Identification d'espèces selon critères et hierarchisation des critères

Oui j'y avais déjà penser, mais ce n'est pas exactement ce que je recherche. Ducoup je me suis mis aux macros hier, grâce aux super cours proposés sur le site, et je m'en sors pas mal pour le moment. Avec des dizaines de If et Else j'ai réussi a faire ce que je voulais. Il y a certainement mieux, mais pour le moment ça marche en tout cas.
 

Bebere

XLDnaute Barbatruc
Re : Identification d'espèces selon critères et hierarchisation des critères

bonjour Sporoz,Cisco

un code qui ne donne pas de résultat
il faut certainement adapter entre les 2 lignes'*****
le code fait toutes les feuilles sauf ref
si résultat positif met dans tableau nom ou nomcn

Sub essai()
Dim nom() As String, nomcn() As String

tblref = Range("ref!E6:S25")

For Each ws In Worksheets
If ws.Name <> "ref" Then
With ws
tbl = .Range("B3:U9") 'échantillon
End With


i = 0
ii = 0
a = 0
For li = 1 To UBound(tblref, 1)
For c = 1 To UBound(tbl, 2)
If tbl(1, c) <> "" Then
If tbl(1, c) >= tblref(li, 1) And tbl(1, c) <= tblref(li, 2) Then a = a + 1 '3
End If
If tbl(2, c) <> "" Then
If tbl(2, c) >= tblref(li, 3) And tbl(2, c) <= tblref(li, 4) Then b = b + 1 '4
End If
If tbl(3, c) <> "" Then
If tbl(3, c) >= tblref(li, 7) And tbl(3, c) <= tblref(li, 8) Then cc = cc + 1 '5
End If
If tbl(4, c) <> "" Then
If tbl(4, c) >= tblref(li, 9) And tbl(4, c) <= tblref(li, 10) Then d = d + 1 '6
End If
If tbl(5, c) <> "" Then
If tbl(5, c) >= tblref(li, 12) And tbl(5, c) <= tblref(li, 13) Then e = e + 1 '7
End If
If tbl(6, c) <> "" Then
If tbl(6, c) >= tblref(li, 14) And tbl(6, c) <= tblref(li, 15) Then f = f + 1 '8
End If
If tbl(7, c) <> "" Then
If tbl(7, c) = 1 Then g = g + 1 '9 cn
End If
'*****
If a + b + cc + d + e + f = 9 Then ReDim Preserve nomcn(i): nomcn(i) = tblref(li, 1): i = i + 1
If a + b + cc + d + e + f = 8 Then ReDim Preserve nom(ii): nom(ii) = tblref(li, 1): ii = ii + 1
'*****
a = 0: b = 0: cc = 0: d = 0: e = 0: f = 0

Next
Next
End If
Next

End Sub

à bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 081
Membres
103 457
dernier inscrit
fab2614