> Tous les forums > Forum Bureautique
 Excel: Chercher l'emplacement de la valeur maximale dans une plageSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Nico34
  Posté le 15/10/2013 @ 19:11 
Aller en bas de la page 
Petit astucien

Bonjour,

Après m'être arraché les cheveux sur ce problème, je m'adresse à vos savoirs afin de tenter de résoudre mon problème sous Excel 2007:

Je souhaiterai, sans macro (mais avec des fonctions imbriquées), choisir une valeur max dans une liste et afficher la valeur de la cellule située à sa droite. Il s'agirait de faire cette manip sur différents vecteurs imbriqués les uns dans les autres comme le montre l'exemple joint (Où le max rouge doit donner la valeur max du vecteur en rouge et imbriqué avec le vecteur vert dont il est question également de trouver le max, les calculs ont été fait "à la mano" à titre d'exemple concernant les deux dernières lignes):

(Pour touver la valeur max j'utilise "max(vecteur recherché/nombres)" et pour tenter d'avoir la lettre correspondante: "recherche(max(vecteur recherché/nombres); vecteur recherché/nombres; vecteur cible/lettres)", mais cela se fait de façon erratique concernant la deuxième fonction et ne fonctionne pas sur les vecteurs imbriqués...)

Merci d'avance de votre aide!

Nico.

14 a

5 b

23 c

14 d

17 e

89 f


Calculs à réaliser:

max: 89 f

max: 17 e



Modifié par Nico34 le 15/10/2013 19:14
Publicité
ferrand
 Posté le 15/10/2013 à 21:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

houlà !

Dans Excel, il me faut des lignes et des colonnes pour définir des plages de recherche. Et si couleurs, des valeurs de couleurs en RGB ! Et si tes vecteurs sont colorés faudra nécessairement créer fonctions personnalisées...

Bonsoir.

jpr73
 Posté le 16/10/2013 à 10:19 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

Peut-être une solution en passant par les anciennes macro XL4 selon l'exemple joint.

Cordialement

http://cjoint.com/?CJqkr6wJDI9

DjiDji59430
 Posté le 16/10/2013 à 11:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ou connaitre les conditions pour lesquelles les cellules sont vertes ou rouges.

Si ces conditions, a la place de couleurs mettent par exemple a ou b dans un cellule a cote, on peut essayer avec

{=MAX(SI(A1:A5="b";B1:B5;""))}

formule matricielle (shift+ctrl + entrée)

http://feed4.tinypic.com/rss.php?u=8oVjPCounM%2FAQjgXXRqq%2FA%3D%3D

ps: trop tard !



Modifié par DjiDji59430 le 16/10/2013 12:33
ferrand
 Posté le 16/10/2013 à 12:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Intéressante l'idée des anciennes macros (mais faut avoir conservé de la doc...). En refléchissant au problème, en l'absence d'autres précisions, voilà un modèle avec fonction personnalisée :

L'utilisation de la fonction apparaît dans la barre de formule. La fonction accepte 2 arguments : la plage globale dans laquelle s'effectue la recherche, ici la plage A1:F10, et le choix du vecteur coloré par indication d'une cellule comportant cette couleur, ici F1 indique qu'il s'agit des cellules bleues.

La fonction s'utilise en fonction matricielle : on sélectionne 2 cellules sur une même ligne, on tape la fonction (avec ses arguments) et on valide par Ctrl+Alt+Entrée. Les deux cellules choisies pour taper la fonction afficheront alors respectivement, la valeur maximale trouvée dans la plage colorée choisie et l'indication figurant dans la cellule à droite de cette valeur.

NB-S'il y a deux valeurs maximales identiques dans la même couleur, seule la première trouvée sera affichée par la fonction (en l'état actuel de la fonction).

La fonction :

Function MAXVECTCOUL(PlaRech As Range, PlaCoul As Range)
Dim c As Range, coul As Long, résult(1)
Application.Volatile
coul = PlaCoul.Interior.Color
For Each c In PlaRech.Cells
If IsNumeric(c.Value) And c.Interior.Color = coul Then
If c.Value > résult(0) Then
résult(0) = c.Value
résult(1) = c.Offset(0, 1).Value
End If
End If
Next c
MAXVECTCOUL = résult
End Function

Elle est à coller dans un module standard du classeur...

Bonne journée.

Plus de choix de police dans ce nouvel éditeur de réponses ?

Nico34
 Posté le 19/10/2013 à 16:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

L'idée de Ferrand fonctionne et correspond à mon "cahier des charges", le problème semble donc résolu! Merci à tous pour votre aide!

@++!

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Calculer date en fonction d'une valeur dans une plage de cellules
Excel: valeur cellule impliquée dans calcul ailleurs -> connexions
Chercher dans des fourchettes de valeur
chercher les lignes doubles dans excel 2003
Chercher une liste de mots dans une cellule Excel
copier plage excel 2003 coller dans word + m en p
activer une plage de celluel dans excel
Excel 2003 Chercher infos automatiquement dans BD
Définir 1 plage de cellules dans 1 macro excel
Problème de #VALEUR! dans excel
Plus de sujets relatifs à Excel: Chercher l''emplacement de la valeur maximale dans une plage
 > Tous les forums > Forum Bureautique