Matricielle, comparer une plage a une autre ligne par ligne

Bonjour,

J'ai un tableau et aimerais faire un calcul selon si la plage contient les valeur d une autre plage. Voici un exemple:

a1................... b1 ...................c1...................d1...................valeur ................................x1...................y1...................z1

pomme........banana...........orange.............poire................10................................pomme................poire................sel

orange.........banane........................................................... 12

sel................banana...........pomme.................................... 21

orange..........prune............tangerine .................................. 5

donc en gros j aimerais avoir la plus grande valeur parmis toutes les lignes qui ne contiennent pas les valeurs x1 y1 ou z1.

donc ligne 1 contient une des valeurs x y ou z donc compte pas...ligne 2 est ok... ligne 3 non...ligne 4 ok donc entre ligne 2 et ligne 4 la valeur la plus grande est donc 12.

je n arrive pas dans une matricielle à faire pour qu excel compare chaque entité de chaques ligne avec chaques entité de mon autre plage.

Quelqu un est magician?

merci à l'avance!

Bonjour

Tu devrais joindre un fichier avec un exemple de ce que tu as et ce que tu veux obtenir.

Bye !

Bonjour le forum,

j aimerais avoir la plus grande valeur parmis toutes les lignes qui ne contiennent pas les valeurs x1 y1 ou z1.

je n arrive pas dans une matricielle à faire pour qu excel compare chaque entité de chaques ligne avec chaques entité de mon autre plage.

Une matricielle : mais en K2 après quelques colonnes intermédiaires ???

max

bonjour,

une autre proposition, toujours avec une colonne supplémentaire ...

Merci de vos réponse!

Malheureusement ca serais trop complexe d'ajouter des colonnes car j'ai beaucoup de données donc j'aurais trop de colonne en plus...

j'essaie avec des formule comme celle-ci (que j ai simplifiée) mais le problem est que chaque cellule de la plage est tenue en compte individuellement...donc quand une expression est ''faux'', il invalide la cellule et non la ligne...

autrement dit ca donne:

vra/vrai/faux/vrai; ==> 1000/1000/''''/1000

faux/vrai/vrai/vrai; ==> ''''/600/600/600

vrai/vrai/vrai/vrai; ==> 500/500/500/500

donc le resultat est qu il prend en compte des montants qu il ne devrais pas...

=GRANDE.VALEUR(SI((Tableau1[[DIRECT_2]:[DIRECT_20]]<>[@N3]);[VENTES];"");1)

il y a 19 elements pour chaques lignes... y aurait-t il moyen de lui donner cet interval? sinon je dois faire le test pour chaques colonne donc je repete le code 19 fois pour chaques valeur que je veux exclure...c est beaucoup...

bonsoir,

on peut aussi prévoir une fonction personnalisée...

bonsoir

un essai /contribution

sans colonne annexe , avec une matricielle

14plafontaine.xlsx (9.65 Ko)

cordialement

@tulipe_4

WOW!

ça fonctionne t`res bien! Je rajoute une petite difficulté par contre.. si jamais les elements que je veux exclure ne sont pas collé, y à t'il un moyen de selectionner plusieurs cellules ?

dans ta formule au lieu de L1:N1 avoir L1,m1,p1...

car j avais simplifier pour essayer de trouver une solution mais en réalité mes elements sont séparés...

merci encore!

re

merci

pour resoudre le "probleme" de la plage L1: N1 il suffit de la nommer ...... mais en dynamique cela donne

= decaler(l$1;;;;nb.si(l$1:aa$1;"><")) dans gestionnaire de nom

ainsi tu peux mettre x valeurs (attention sans cel vides)

d'ailleur il est possible de nommer "tablo" et "valeur" avec le meme procédé (j'ai eu la flemme )

cordialement

dsl mais je n arrive pas à faire fonctionner... j'ai essayer de mettre entre parenthese séparé par des ; la formule donne de mauvais résultats...meme chose dans une plage nomée...il doit y avoir un moyen...j ai essayé entre {} mais non plus...

pourrais tu m'expliquer ce bout svp?

bonjour

il s'agit d'une fonction matricielle qui nessecite une validation spéciale

1) tu mets le | à la derniere ) comme si tu voulais y rajouter qque chose

2) tu presses les 3 touches Ctrl Maj (grosse fleche) et Entrée en simultané ; les {} se mettent automatiquement

nb) j'ai mis 4 parce le tablo a 4 colonnes ( tu adaptes )

cordialement

La partie matricielle est ok, c'est la partie pour les plages non contigues...

j'aimerais avoir dans la formule plusieurs cellules comme plage du genre [client];[client_2];[client_3]

au lieu de [[client]:[lient_3]]

mais à l'intérieur de la formule je n'arrive pas à le mettre de la bonne façon...

=MAX(SI(FREQUENCE(SI(ESTNUM(EQUIV(Tableau1[[DIRECT_2]:[DIRECT_20]];Tableau1[@[N2]:[N3]];0));"";LIGNE(Tableau1[[DIRECT_2]:[DIRECT_20]]));LIGNE(Tableau1[[DIRECT_2]:[DIRECT_20]]))=19;[VENTES];""))

j aimerais remplacer la section '' Tableau1[@[N2]:[N3]]'' par plusieurs cellules du genre [N2];[N6];[N8]

j'ai essayé: ([N2];[N6];[N8]) ainsi que : [N2];[N6];[N8] ainsi que : {[N2];[N6];[N8]}.... meme avec des virgules... il n'accepte que ([N2];[N6];[N8]) et le resultats n est pas bon!

j'espère que c'est plus clair! J'ai également essayé de nommer une plage non contigue...sans success!

Merci encore!

re

et si tu essayais de rendre cette plage non continue en plage continue ailleur sur la feuille (as tu le droit de le faire ?)

par exemple

9pl-continue.xlsx (8.52 Ko)

cordialement

merci pour l'exemple mais je ne comprend pas ta formule decaler...

re

quand tu nommes (gestionnaire de nom ...... nouveau )

1) tu donnes un nom

2) a fait reference >>>> =Decaler (.............)

ainsi le nom indique la plage continue qui contient exactement les valeurs extraites ; c'est la partie nb.si qui dimensionne

j'espere que tu as remarqué que l'extraction en G1:O1 a une formule dédiée speciale

Rechercher des sujets similaires à "matricielle comparer plage ligne"