Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des virgules
..
Dans chaque cellule les noms sont uniques. Un auteur ne peut pas etre
présent deux fois dans une meme cellule, mais il peut etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
...
La formule/macro me donnerais le premier, le deuxième, le dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
..
Une fois cela obtenue pour toutes les revues je dois additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs selon leurs
position de citation dans les crédits d'une revue (ces positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des virgules
..
Dans chaque cellule les noms sont uniques. Un auteur ne peut pas etre
présent deux fois dans une meme cellule, mais il peut etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
...
La formule/macro me donnerais le premier, le deuxième, le dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
..
Une fois cela obtenue pour toutes les revues je dois additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs selon leurs
position de citation dans les crédits d'une revue (ces positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des virgules
..
Dans chaque cellule les noms sont uniques. Un auteur ne peut pas etre
présent deux fois dans une meme cellule, mais il peut etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
...
La formule/macro me donnerais le premier, le deuxième, le dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
..
Une fois cela obtenue pour toutes les revues je dois additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs selon leurs
position de citation dans les crédits d'une revue (ces positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
-----Message d'origine-----
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que
je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je
souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des
virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des
virgules
...
Dans chaque cellule les noms sont uniques. Un auteur ne
peut pas etre
présent deux fois dans une meme cellule, mais il peut
etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et
attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le deuxième, le
dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs
selon leurs
position de citation dans les crédits d'une revue (ces
positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup
de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
-----Message d'origine-----
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que
je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je
souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des
virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des
virgules
...
Dans chaque cellule les noms sont uniques. Un auteur ne
peut pas etre
présent deux fois dans une meme cellule, mais il peut
etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et
attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le deuxième, le
dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs
selon leurs
position de citation dans les crédits d'une revue (ces
positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup
de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
-----Message d'origine-----
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que
je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je
souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des
virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des
virgules
...
Dans chaque cellule les noms sont uniques. Un auteur ne
peut pas etre
présent deux fois dans une meme cellule, mais il peut
etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et
attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le deuxième, le
dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs
selon leurs
position de citation dans les crédits d'une revue (ces
positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup
de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
Bonjour,
voici une solution complète. Fais simplement gaffe: le
fomat des messages du forum force des passages à la ligne
qui font bugger le code. Il faudra donc que tu retouches
un peu la forme du code, mais normalement ça marche.
J'a en fait créer 4 fonctions que tu pourras utiliser dans
les feuilles Excel directement comme tu utilises SOMME ou
NBVAL par exemple. Elles sont aussi accessibles via le
petit fx de ta barre d'outils.
une fonction nb_virgules. Tu fournis un texte (ou une case
contenant du texte) et la fonction renvoie le nombre de
virgules (pas très utile pour toi, mais je m'en sers pour
les autres fonctions)
une fonction get_xème. Tu fournis un texte (une case
représentant une revue par exemple) et une position
(1,2...) et la fonction renvoie le nom de l'auteur
occupant cette position dans la revue.
Une fonction isIn. Tu fournis une revue et un nom, la
fonction renvoie VRAI si l'auteur est cité, FAUX sinon.
Une fonction points. Tu founis une plage de cellules
(chaque cellule représentant une revue) et un nom d'auteur
et la fonction renvoie le nombre de points selon les
critères que tu as énoncés.
avec tout ça, tu devrais pouvoir t'en sortir sans trop de
souci.
si as des questions n'hésite pas (j'ai testé les fonctions
et elles semblent marcher, mais je n'y ai pas passé des
heures non plus) et si tu as deux minutes, n'hésite pas à
expliquer comment l'ordre des citations est normalisé dans
les revues littéraires, je trouve rigolo.
Le code (à coller dans un module standard):
Function nb_virgules(ByVal revue As String) As Integer
Application.Volatile
Dim i, nb As Integer
For i = 1 To Len(revue)
If Mid(revue, i, 1) = "," Then nb = nb + 1
Next
nb_virgules = nb
End Function
Function get_xème(ByVal revue As String, ByVal index As
Integer) As String
Application.Volatile
If index > nb_virgules(revue) + 1 Then
get_xème = "index trop long"
Else
Dim deb, fin, virgindex, i As Integer
Dim continue As Boolean
continue = True
deb = 0
fin = 0
virgindex = 0
While continue
i = i + 1
If Mid(revue, i, 1) = "," Then virgindex =
virgindex + 1
If virgindex = index - 1 And deb = 0 And Not index
= 1 Then deb = i + 1
If virgindex = index And fin = 0 Then
fin = i - 1
continue = False
End If
If i = Len(revue) Then continue = False
Wend
If fin = 0 Then fin = Len(revue)
If deb = 0 Then deb = 1
get_xème = Mid(revue, deb, fin - deb + 1)
End If
End Function
Function isIn(ByVal revue As String, ByVal nom As String)
As Boolean
Application.Volatile
Dim i As Integer
Dim dedans As Boolean
i = 1
dedans = False
While i <= nb_virgules(revue) + 1 And Not dedans
If get_xème(revue, i) = nom Then dedans = True
i = i + 1
Wend
isIn = dedans
End Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xème(c.Value, 1) = nom Or get_xème(c.Value,
nb_virgules(c.Value) + 1) = nom Then
score = score + 1
Else
If get_xème(c.Value, 2) = nom Or get_xème
(c.Value, nb_virgules(c.Value)) = nom Then
score = score + 0.5
Else
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
Voila!
Chris.-----Message d'origine-----
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que
je rencontreactuellement.
Je possède une liste d'auteurs de publication, et je
souhaite faire unclassement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des
virgules(revue 2) cellule 2 = y noms d'auteurs séparés par des
virgules...
Dans chaque cellule les noms sont uniques. Un auteur ne
peut pas etreprésent deux fois dans une meme cellule, mais il peut
etre present dansdifférentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et
attibuer unevaleur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le deuxième, le
dernier etl'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner letout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs
selon leursposition de citation dans les crédits d'une revue (ces
positions étantnormalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup
de mal àfaire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
Bonjour,
voici une solution complète. Fais simplement gaffe: le
fomat des messages du forum force des passages à la ligne
qui font bugger le code. Il faudra donc que tu retouches
un peu la forme du code, mais normalement ça marche.
J'a en fait créer 4 fonctions que tu pourras utiliser dans
les feuilles Excel directement comme tu utilises SOMME ou
NBVAL par exemple. Elles sont aussi accessibles via le
petit fx de ta barre d'outils.
une fonction nb_virgules. Tu fournis un texte (ou une case
contenant du texte) et la fonction renvoie le nombre de
virgules (pas très utile pour toi, mais je m'en sers pour
les autres fonctions)
une fonction get_xème. Tu fournis un texte (une case
représentant une revue par exemple) et une position
(1,2...) et la fonction renvoie le nom de l'auteur
occupant cette position dans la revue.
Une fonction isIn. Tu fournis une revue et un nom, la
fonction renvoie VRAI si l'auteur est cité, FAUX sinon.
Une fonction points. Tu founis une plage de cellules
(chaque cellule représentant une revue) et un nom d'auteur
et la fonction renvoie le nombre de points selon les
critères que tu as énoncés.
avec tout ça, tu devrais pouvoir t'en sortir sans trop de
souci.
si as des questions n'hésite pas (j'ai testé les fonctions
et elles semblent marcher, mais je n'y ai pas passé des
heures non plus) et si tu as deux minutes, n'hésite pas à
expliquer comment l'ordre des citations est normalisé dans
les revues littéraires, je trouve rigolo.
Le code (à coller dans un module standard):
Function nb_virgules(ByVal revue As String) As Integer
Application.Volatile
Dim i, nb As Integer
For i = 1 To Len(revue)
If Mid(revue, i, 1) = "," Then nb = nb + 1
Next
nb_virgules = nb
End Function
Function get_xème(ByVal revue As String, ByVal index As
Integer) As String
Application.Volatile
If index > nb_virgules(revue) + 1 Then
get_xème = "index trop long"
Else
Dim deb, fin, virgindex, i As Integer
Dim continue As Boolean
continue = True
deb = 0
fin = 0
virgindex = 0
While continue
i = i + 1
If Mid(revue, i, 1) = "," Then virgindex =
virgindex + 1
If virgindex = index - 1 And deb = 0 And Not index
= 1 Then deb = i + 1
If virgindex = index And fin = 0 Then
fin = i - 1
continue = False
End If
If i = Len(revue) Then continue = False
Wend
If fin = 0 Then fin = Len(revue)
If deb = 0 Then deb = 1
get_xème = Mid(revue, deb, fin - deb + 1)
End If
End Function
Function isIn(ByVal revue As String, ByVal nom As String)
As Boolean
Application.Volatile
Dim i As Integer
Dim dedans As Boolean
i = 1
dedans = False
While i <= nb_virgules(revue) + 1 And Not dedans
If get_xème(revue, i) = nom Then dedans = True
i = i + 1
Wend
isIn = dedans
End Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xème(c.Value, 1) = nom Or get_xème(c.Value,
nb_virgules(c.Value) + 1) = nom Then
score = score + 1
Else
If get_xème(c.Value, 2) = nom Or get_xème
(c.Value, nb_virgules(c.Value)) = nom Then
score = score + 0.5
Else
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
Voila!
Chris.
-----Message d'origine-----
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que
je rencontre
actuellement.
Je possède une liste d'auteurs de publication, et je
souhaite faire un
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des
virgules
(revue 2) cellule 2 = y noms d'auteurs séparés par des
virgules
...
Dans chaque cellule les noms sont uniques. Un auteur ne
peut pas etre
présent deux fois dans une meme cellule, mais il peut
etre present dans
différentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et
attibuer une
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le deuxième, le
dernier et
l'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner le
tout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs
selon leurs
position de citation dans les crédits d'une revue (ces
positions étant
normalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup
de mal à
faire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
Bonjour,
voici une solution complète. Fais simplement gaffe: le
fomat des messages du forum force des passages à la ligne
qui font bugger le code. Il faudra donc que tu retouches
un peu la forme du code, mais normalement ça marche.
J'a en fait créer 4 fonctions que tu pourras utiliser dans
les feuilles Excel directement comme tu utilises SOMME ou
NBVAL par exemple. Elles sont aussi accessibles via le
petit fx de ta barre d'outils.
une fonction nb_virgules. Tu fournis un texte (ou une case
contenant du texte) et la fonction renvoie le nombre de
virgules (pas très utile pour toi, mais je m'en sers pour
les autres fonctions)
une fonction get_xème. Tu fournis un texte (une case
représentant une revue par exemple) et une position
(1,2...) et la fonction renvoie le nom de l'auteur
occupant cette position dans la revue.
Une fonction isIn. Tu fournis une revue et un nom, la
fonction renvoie VRAI si l'auteur est cité, FAUX sinon.
Une fonction points. Tu founis une plage de cellules
(chaque cellule représentant une revue) et un nom d'auteur
et la fonction renvoie le nombre de points selon les
critères que tu as énoncés.
avec tout ça, tu devrais pouvoir t'en sortir sans trop de
souci.
si as des questions n'hésite pas (j'ai testé les fonctions
et elles semblent marcher, mais je n'y ai pas passé des
heures non plus) et si tu as deux minutes, n'hésite pas à
expliquer comment l'ordre des citations est normalisé dans
les revues littéraires, je trouve rigolo.
Le code (à coller dans un module standard):
Function nb_virgules(ByVal revue As String) As Integer
Application.Volatile
Dim i, nb As Integer
For i = 1 To Len(revue)
If Mid(revue, i, 1) = "," Then nb = nb + 1
Next
nb_virgules = nb
End Function
Function get_xème(ByVal revue As String, ByVal index As
Integer) As String
Application.Volatile
If index > nb_virgules(revue) + 1 Then
get_xème = "index trop long"
Else
Dim deb, fin, virgindex, i As Integer
Dim continue As Boolean
continue = True
deb = 0
fin = 0
virgindex = 0
While continue
i = i + 1
If Mid(revue, i, 1) = "," Then virgindex =
virgindex + 1
If virgindex = index - 1 And deb = 0 And Not index
= 1 Then deb = i + 1
If virgindex = index And fin = 0 Then
fin = i - 1
continue = False
End If
If i = Len(revue) Then continue = False
Wend
If fin = 0 Then fin = Len(revue)
If deb = 0 Then deb = 1
get_xème = Mid(revue, deb, fin - deb + 1)
End If
End Function
Function isIn(ByVal revue As String, ByVal nom As String)
As Boolean
Application.Volatile
Dim i As Integer
Dim dedans As Boolean
i = 1
dedans = False
While i <= nb_virgules(revue) + 1 And Not dedans
If get_xème(revue, i) = nom Then dedans = True
i = i + 1
Wend
isIn = dedans
End Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xème(c.Value, 1) = nom Or get_xème(c.Value,
nb_virgules(c.Value) + 1) = nom Then
score = score + 1
Else
If get_xème(c.Value, 2) = nom Or get_xème
(c.Value, nb_virgules(c.Value)) = nom Then
score = score + 0.5
Else
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
Voila!
Chris.-----Message d'origine-----
Bonjour à tous !
Je viens vers vous pour vous faire part d'un soucis que
je rencontreactuellement.
Je possède une liste d'auteurs de publication, et je
souhaite faire unclassement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs séparés par des
virgules(revue 2) cellule 2 = y noms d'auteurs séparés par des
virgules...
Dans chaque cellule les noms sont uniques. Un auteur ne
peut pas etreprésent deux fois dans une meme cellule, mais il peut
etre present dansdifférentes cellules en positions différentes.
Ce que je cherche à faire c'est obtenir :
Le classement d'un auteur dans les revues présentes et
attibuer unevaleur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le deuxième, le
dernier etl'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner letout de la façon suivante :
Si premier ou dernier = +1
Si deuxième ou avant-dernier = +0.5
Si entre le deuxième et l'avant dernier = +025
(dans l'exemple précédent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet à terme d'avoir un classement des auteurs
selon leursposition de citation dans les crédits d'une revue (ces
positions étantnormalisées).
Quelqu'un peut-il m'aider ? Car j'ai franchement beaucoup
de mal àfaire ça autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
-----Message d'origine-----
Merci beaucoup pour le coup de main.
Je rencontre un petit soucis toutefois dans la dernière
fonction :
----------------------------------------------------------
------------------------------------------
Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xème(c.Value, 1) = nom Or get_xème(c.Value,
nb_virgules(c.Value) + 1) = nom Then score = score + 1
Else
If get_xème(c.Value, 2) = nom Or get_xème
(c.Value,
nb_virgules(c.Value)) = nom Then score = score + 0.5
Else <----------------------------------------
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
----------------------------------------------------------
------------------------------------------
Le
Le debogueur d'Excel me dit que le Else (voir fleche)
pose soucis et me
renvoie le message suivant "Erreur de compilation : Else
Sans If"
quand je fais une compilation VBAProject.
Tu vois comment faire ?
Pour ce qui est du classement, en fait il s'agit de
revues
scientifiques, et les auteurs sont des chercheurs.
Le classement se fait de la façon suivante :
Le premier = Manipulateur en labo = +1
Le dernier = instigateur des recherches = +1
Le deuxième = suppléant = +0.5
L'avant dernier = suppléant = +0.5
Les autres = +0.25
En gros ce travail est un travail de pseudo Impact Factor.
A savoir qu'avec les noms et les revues, nous pouvons
attribuer un
classement indicatif des activités de chercheurs.
Cela nous permet de mieux affiner nos études et de
pouvoir mettre en
avant les chercheurs le plus objectivement , sans être
influencés par
les "envois d'ascenseurs" ou autre.
Là on se base sur le travail écrit réellement produit.Bonjour,
voici une solution complte. Fais simplement gaffe:
le
fomat des messages du forum force des passages la
ligne
qui font bugger le code. Il faudra donc que tu
retouches
un peu la forme du code, mais normalement a marche.
J'a en fait crer 4 fonctions que tu pourras utiliser
dans
les feuilles Excel directement comme tu utilises SOMME
ou
NBVAL par exemple. Elles sont aussi accessibles via
le
petit fx de ta barre d'outils.
une fonction nb_virgules. Tu fournis un texte (ou une
case
contenant du texte) et la fonction renvoie le nombre
de
virgules (pas trs utile pour toi, mais je m'en sers
pour
les autres fonctions)
une fonction get_xme. Tu fournis un texte (une
case
reprsentant une revue par exemple) et une position
(1,2...) et la fonction renvoie le nom de l'auteur
occupant cette position dans la revue.
Une fonction isIn. Tu fournis une revue et un nom, la
fonction renvoie VRAI si l'auteur est cit, FAUX
sinon.
Une fonction points. Tu founis une plage de cellules
(chaque cellule reprsentant une revue) et un nom
d'auteur
et la fonction renvoie le nombre de points selon les
critres que tu as noncs.
avec tout a, tu devrais pouvoir t'en sortir sans
trop de
souci.
si as des questions n'hsite pas (j'ai test les
fonctions
et elles semblent marcher, mais je n'y ai pas pass
des
heures non plus) et si tu as deux minutes, n'hsite
pas
expliquer comment l'ordre des citations est normalis
dans
les revues littraires, je trouve rigolo.
Le code ( coller dans un module standard):
Function nb_virgules(ByVal revue As String) As Integer
Application.Volatile
Dim i, nb As Integer
For i = 1 To Len(revue)
If Mid(revue, i, 1) = "," Then nb = nb + 1
Next
nb_virgules = nb
End Function
Function get_xme(ByVal revue As String, ByVal index
As
Integer) As String
Application.Volatile
If index > nb_virgules(revue) + 1 Then
get_xme = "index trop long"
Else
Dim deb, fin, virgindex, i As Integer
Dim continue As Boolean
continue = True
deb = 0
fin = 0
virgindex = 0
While continue
i = i + 1
If Mid(revue, i, 1) = "," Then virgindex
=
virgindex + 1
If virgindex = index - 1 And deb = 0 And
Not index
= 1 Then deb = i + 1
If virgindex = index And fin = 0 Then
fin = i - 1
continue = False
End If
If i = Len(revue) Then continue = False
Wend
If fin = 0 Then fin = Len(revue)
If deb = 0 Then deb = 1
get_xme = Mid(revue, deb, fin - deb + 1)
End If
End Function
Function isIn(ByVal revue As String, ByVal nom As
String)
As Boolean
Application.Volatile
Dim i As Integer
Dim dedans As Boolean
i = 1
dedans = False
While i <= nb_virgules(revue) + 1 And Not dedans
If get_xme(revue, i) = nom Then dedans = True
i = i + 1
Wend
isIn = dedans
End Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xme(c.Value, 1) = nom Or get_xme
(c.Value,
nb_virgules(c.Value) + 1) = nom Then
score = score + 1
Else
If get_xme(c.Value, 2) = nom Or
get_xme
(c.Value, nb_virgules(c.Value)) = nom Then
score = score + 0.5
Else
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
Voila!
Chris.-----Message d'origine-----
Bonjour tous !
Je viens vers vous pour vous faire part d'un soucis
que
je rencontreactuellement.
Je possde une liste d'auteurs de publication, et
je
souhaite faire unclassement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs spars
par des
virgules(revue 2) cellule 2 = y noms d'auteurs spars
par des
virgules...
Dans chaque cellule les noms sont uniques. Un auteur
ne
peut pas etreprsent deux fois dans une meme cellule, mais il
peut
etre present dansdiffrentes cellules en positions diffrentes.
Ce que je cherche faire c'est obtenir :
Le classement d'un auteur dans les revues prsentes
et
attibuer unevaleur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le
deuxime, le
dernier etl'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner letout de la faon suivante :
Si premier ou dernier = +1
Si deuxime ou avant-dernier = +0.5
Si entre le deuxime et l'avant dernier = +025
(dans l'exemple prcdent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet terme d'avoir un classement des
auteurs
selon leursposition de citation dans les crdits d'une revue
(ces
positions tantnormalises).
Quelqu'un peut-il m'aider ? Car j'ai franchement
beaucoup
de malfaire a autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
.
-----Message d'origine-----
Merci beaucoup pour le coup de main.
Je rencontre un petit soucis toutefois dans la dernière
fonction :
----------------------------------------------------------
------------------------------------------
Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xème(c.Value, 1) = nom Or get_xème(c.Value,
nb_virgules(c.Value) + 1) = nom Then score = score + 1
Else
If get_xème(c.Value, 2) = nom Or get_xème
(c.Value,
nb_virgules(c.Value)) = nom Then score = score + 0.5
Else <----------------------------------------
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
----------------------------------------------------------
------------------------------------------
Le
Le debogueur d'Excel me dit que le Else (voir fleche)
pose soucis et me
renvoie le message suivant "Erreur de compilation : Else
Sans If"
quand je fais une compilation VBAProject.
Tu vois comment faire ?
Pour ce qui est du classement, en fait il s'agit de
revues
scientifiques, et les auteurs sont des chercheurs.
Le classement se fait de la façon suivante :
Le premier = Manipulateur en labo = +1
Le dernier = instigateur des recherches = +1
Le deuxième = suppléant = +0.5
L'avant dernier = suppléant = +0.5
Les autres = +0.25
En gros ce travail est un travail de pseudo Impact Factor.
A savoir qu'avec les noms et les revues, nous pouvons
attribuer un
classement indicatif des activités de chercheurs.
Cela nous permet de mieux affiner nos études et de
pouvoir mettre en
avant les chercheurs le plus objectivement , sans être
influencés par
les "envois d'ascenseurs" ou autre.
Là on se base sur le travail écrit réellement produit.
Bonjour,
voici une solution compl=E8te. Fais simplement gaffe:
le=20
fomat des messages du forum force des passages =E0 la
ligne=20
qui font bugger le code. Il faudra donc que tu
retouches=20
un peu la forme du code, mais normalement =E7a marche.
J'a en fait cr=E9er 4 fonctions que tu pourras utiliser
dans=20
les feuilles Excel directement comme tu utilises SOMME
ou=20
NBVAL par exemple. Elles sont aussi accessibles via
le=20
petit fx de ta barre d'outils.
une fonction nb_virgules. Tu fournis un texte (ou une
case=20
contenant du texte) et la fonction renvoie le nombre
de=20
virgules (pas tr=E8s utile pour toi, mais je m'en sers
pour=20
les autres fonctions)
une fonction get_x=E8me. Tu fournis un texte (une
case=20
repr=E9sentant une revue par exemple) et une position=20
(1,2...) et la fonction renvoie le nom de l'auteur=20
occupant cette position dans la revue.
Une fonction isIn. Tu fournis une revue et un nom, la=20
fonction renvoie VRAI si l'auteur est cit=E9, FAUX
sinon.
Une fonction points. Tu founis une plage de cellules=20
(chaque cellule repr=E9sentant une revue) et un nom
d'auteur=20
et la fonction renvoie le nombre de points selon les=20
crit=E8res que tu as =E9nonc=E9s.=20
avec tout =E7a, tu devrais pouvoir t'en sortir sans
trop de=20
souci.
si as des questions n'h=E9site pas (j'ai test=E9 les
fonctions=20
et elles semblent marcher, mais je n'y ai pas pass=E9
des=20
heures non plus) et si tu as deux minutes, n'h=E9site
pas =E0=20
expliquer comment l'ordre des citations est normalis=E9
dans=20
les revues litt=E9raires, je trouve rigolo.
Le code (=E0 coller dans un module standard):
Function nb_virgules(ByVal revue As String) As Integer
Application.Volatile
Dim i, nb As Integer
For i =3D 1 To Len(revue)
If Mid(revue, i, 1) =3D "," Then nb =3D nb + 1
Next
nb_virgules =3D nb
End Function
Function get_x=E8me(ByVal revue As String, ByVal index
As=20
Integer) As String
Application.Volatile
If index > nb_virgules(revue) + 1 Then
get_x=E8me =3D "index trop long"
Else
Dim deb, fin, virgindex, i As Integer
Dim continue As Boolean
continue =3D True
deb =3D 0
fin =3D 0
virgindex =3D 0
While continue
i =3D i + 1
If Mid(revue, i, 1) =3D "," Then virgindex
=3D=20
virgindex + 1
If virgindex =3D index - 1 And deb =3D 0 And
Not index=20
=3D 1 Then deb =3D i + 1
If virgindex =3D index And fin =3D 0 Then
fin =3D i - 1
continue =3D False
End If
If i =3D Len(revue) Then continue =3D False
Wend
If fin =3D 0 Then fin =3D Len(revue)
If deb =3D 0 Then deb =3D 1
get_x=E8me =3D Mid(revue, deb, fin - deb + 1)
=20
End If
End Function
Function isIn(ByVal revue As String, ByVal nom As
String)=20
As Boolean
Application.Volatile
Dim i As Integer
Dim dedans As Boolean
i =3D 1
dedans =3D False
While i <=3D nb_virgules(revue) + 1 And Not dedans
If get_x=E8me(revue, i) =3D nom Then dedans =3D True
i =3D i + 1
Wend
isIn =3D dedans
End Function
Function points(ByVal revues As Range, ByVal nom As=20
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score =3D 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_x=E8me(c.Value, 1) =3D nom Or get_x=E8me
(c.Value,=20
nb_virgules(c.Value) + 1) =3D nom Then
score =3D score + 1
Else
If get_x=E8me(c.Value, 2) =3D nom Or
get_x=E8me
(c.Value, nb_virgules(c.Value)) =3D nom Then
score =3D score + 0.5
Else
score =3D score + 0.25
End If
End If
End If
Next
points =3D score
End Function
Voila!
Chris.
-----Message d'origine-----
Bonjour =E0 tous !
Je viens vers vous pour vous faire part d'un soucis
que=20
je rencontre=20
actuellement.
Je poss=E8de une liste d'auteurs de publication, et
je=20
souhaite faire un=20
classement des auteurs et participants.
En gros :
(revue 1) cellule 1 =3D x noms d'auteurs s=E9par=E9s
par des=20
virgules
(revue 2) cellule 2 =3D y noms d'auteurs s=E9par=E9s
par des=20
virgules
...
Dans chaque cellule les noms sont uniques. Un auteur
ne=20
peut pas etre=20
pr=E9sent deux fois dans une meme cellule, mais il
peut=20
etre present dans=20
diff=E9rentes cellules en positions diff=E9rentes.
Ce que je cherche =E0 faire c'est obtenir :
Le classement d'un auteur dans les revues pr=E9sentes
et=20
attibuer une=20
valeur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le
deuxi=E8me, le=20
dernier et=20
l'avant dernier auteur :
position_1_Revue_1 =3D a
position_2_Revue_1 =3D b
position_n_Revue_1 =3D g
postion_(n-1)_Revue_1 =3D f
position_1_Revue_1 =3D b
position_2_Revue_1 =3D g
position_n_Revue_1 =3D c
postion_(n-1)_Revue_1 =3D a
...
Une fois cela obtenue pour toutes les revues je dois=20
additionner le=20
tout de la fa=E7on suivante :
Si premier ou dernier =3D +1
Si deuxi=E8me ou avant-dernier =3D +0.5
Si entre le deuxi=E8me et l'avant dernier =3D +025
(dans l'exemple pr=E9c=E9dent, l'auteur=20
a aurait +2=20
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet =E0 terme d'avoir un classement des
auteurs=20
selon leurs=20
position de citation dans les cr=E9dits d'une revue
(ces=20
positions =E9tant=20
normalis=E9es).
Quelqu'un peut-il m'aider ? Car j'ai franchement
beaucoup=20
de mal =E0=20
faire =E7a autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
.
-----Message d'origine-----
Merci beaucoup pour le coup de main.
Je rencontre un petit soucis toutefois dans la dernière
fonction :
----------------------------------------------------------
------------------------------------------
Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xème(c.Value, 1) = nom Or get_xème(c.Value,
nb_virgules(c.Value) + 1) = nom Then score = score + 1
Else
If get_xème(c.Value, 2) = nom Or get_xème
(c.Value,
nb_virgules(c.Value)) = nom Then score = score + 0.5
Else <----------------------------------------
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
----------------------------------------------------------
------------------------------------------
Le
Le debogueur d'Excel me dit que le Else (voir fleche)
pose soucis et me
renvoie le message suivant "Erreur de compilation : Else
Sans If"
quand je fais une compilation VBAProject.
Tu vois comment faire ?
Pour ce qui est du classement, en fait il s'agit de
revues
scientifiques, et les auteurs sont des chercheurs.
Le classement se fait de la façon suivante :
Le premier = Manipulateur en labo = +1
Le dernier = instigateur des recherches = +1
Le deuxième = suppléant = +0.5
L'avant dernier = suppléant = +0.5
Les autres = +0.25
En gros ce travail est un travail de pseudo Impact Factor.
A savoir qu'avec les noms et les revues, nous pouvons
attribuer un
classement indicatif des activités de chercheurs.
Cela nous permet de mieux affiner nos études et de
pouvoir mettre en
avant les chercheurs le plus objectivement , sans être
influencés par
les "envois d'ascenseurs" ou autre.
Là on se base sur le travail écrit réellement produit.Bonjour,
voici une solution complte. Fais simplement gaffe:
le
fomat des messages du forum force des passages la
ligne
qui font bugger le code. Il faudra donc que tu
retouches
un peu la forme du code, mais normalement a marche.
J'a en fait crer 4 fonctions que tu pourras utiliser
dans
les feuilles Excel directement comme tu utilises SOMME
ou
NBVAL par exemple. Elles sont aussi accessibles via
le
petit fx de ta barre d'outils.
une fonction nb_virgules. Tu fournis un texte (ou une
case
contenant du texte) et la fonction renvoie le nombre
de
virgules (pas trs utile pour toi, mais je m'en sers
pour
les autres fonctions)
une fonction get_xme. Tu fournis un texte (une
case
reprsentant une revue par exemple) et une position
(1,2...) et la fonction renvoie le nom de l'auteur
occupant cette position dans la revue.
Une fonction isIn. Tu fournis une revue et un nom, la
fonction renvoie VRAI si l'auteur est cit, FAUX
sinon.
Une fonction points. Tu founis une plage de cellules
(chaque cellule reprsentant une revue) et un nom
d'auteur
et la fonction renvoie le nombre de points selon les
critres que tu as noncs.
avec tout a, tu devrais pouvoir t'en sortir sans
trop de
souci.
si as des questions n'hsite pas (j'ai test les
fonctions
et elles semblent marcher, mais je n'y ai pas pass
des
heures non plus) et si tu as deux minutes, n'hsite
pas
expliquer comment l'ordre des citations est normalis
dans
les revues littraires, je trouve rigolo.
Le code ( coller dans un module standard):
Function nb_virgules(ByVal revue As String) As Integer
Application.Volatile
Dim i, nb As Integer
For i = 1 To Len(revue)
If Mid(revue, i, 1) = "," Then nb = nb + 1
Next
nb_virgules = nb
End Function
Function get_xme(ByVal revue As String, ByVal index
As
Integer) As String
Application.Volatile
If index > nb_virgules(revue) + 1 Then
get_xme = "index trop long"
Else
Dim deb, fin, virgindex, i As Integer
Dim continue As Boolean
continue = True
deb = 0
fin = 0
virgindex = 0
While continue
i = i + 1
If Mid(revue, i, 1) = "," Then virgindex
=
virgindex + 1
If virgindex = index - 1 And deb = 0 And
Not index
= 1 Then deb = i + 1
If virgindex = index And fin = 0 Then
fin = i - 1
continue = False
End If
If i = Len(revue) Then continue = False
Wend
If fin = 0 Then fin = Len(revue)
If deb = 0 Then deb = 1
get_xme = Mid(revue, deb, fin - deb + 1)
End If
End Function
Function isIn(ByVal revue As String, ByVal nom As
String)
As Boolean
Application.Volatile
Dim i As Integer
Dim dedans As Boolean
i = 1
dedans = False
While i <= nb_virgules(revue) + 1 And Not dedans
If get_xme(revue, i) = nom Then dedans = True
i = i + 1
Wend
isIn = dedans
End Function
Function points(ByVal revues As Range, ByVal nom As
String) As Double
Application.Volatile
Dim c As Range
Dim score As Double
score = 0
For Each c In revues
If isIn(c.Value, nom) Then
If get_xme(c.Value, 1) = nom Or get_xme
(c.Value,
nb_virgules(c.Value) + 1) = nom Then
score = score + 1
Else
If get_xme(c.Value, 2) = nom Or
get_xme
(c.Value, nb_virgules(c.Value)) = nom Then
score = score + 0.5
Else
score = score + 0.25
End If
End If
End If
Next
points = score
End Function
Voila!
Chris.-----Message d'origine-----
Bonjour tous !
Je viens vers vous pour vous faire part d'un soucis
que
je rencontreactuellement.
Je possde une liste d'auteurs de publication, et
je
souhaite faire unclassement des auteurs et participants.
En gros :
(revue 1) cellule 1 = x noms d'auteurs spars
par des
virgules(revue 2) cellule 2 = y noms d'auteurs spars
par des
virgules...
Dans chaque cellule les noms sont uniques. Un auteur
ne
peut pas etreprsent deux fois dans une meme cellule, mais il
peut
etre present dansdiffrentes cellules en positions diffrentes.
Ce que je cherche faire c'est obtenir :
Le classement d'un auteur dans les revues prsentes
et
attibuer unevaleur selon la place.
Exemple :
revue1 : a,b,c,d,e,f,g
revue2 : b,g,f,e,d,a,c
....
La formule/macro me donnerais le premier, le
deuxime, le
dernier etl'avant dernier auteur :
position_1_Revue_1 = a
position_2_Revue_1 = b
position_n_Revue_1 = g
postion_(n-1)_Revue_1 = f
position_1_Revue_1 = b
position_2_Revue_1 = g
position_n_Revue_1 = c
postion_(n-1)_Revue_1 = a
...
Une fois cela obtenue pour toutes les revues je dois
additionner letout de la faon suivante :
Si premier ou dernier = +1
Si deuxime ou avant-dernier = +0.5
Si entre le deuxime et l'avant dernier = +025
(dans l'exemple prcdent, l'auteur
a aurait +2
b aurait +1,5
c aurait +0,75
d aurait +0,5
e aurait +0,5
f aurait +1,25
g aurait +2
Ceci me permet terme d'avoir un classement des
auteurs
selon leursposition de citation dans les crdits d'une revue
(ces
positions tantnormalises).
Quelqu'un peut-il m'aider ? Car j'ai franchement
beaucoup
de malfaire a autrement que manuellement ....
PLEASE HELP !!!!!!!!!!!!!!
.
.