Comment faire réfrence à une matrice?

philmascio

XLDnaute Nouveau
La fonction EQUIV possède un argument "Tableau_recherche" qui peut être au choix (d'après l'assistant fonctions):

- Une plage de cellules adjacentes contenant les valeurs d'équivalence possibles
- Une matrice de valeurs
- La référence à une matrice

Je ne sais pas comment faire référence à une matrice stockée dans une cellule simplement en utilisant l'adresse de ladite cellule.
Ou alors je ne sais pas comment stocker une matrice dans une cellule...
Voilà comment j'ai écrit ma matrice {"1.1";"1.2";"1.4"}
Ca fonctionne dans la formule =EQUIV("1.2";{"1.1";"1.2";"1.4"};0)
mais pas dans une cellule.

Quelqu'un a-t-il LA solution?
 

Dranreb

XLDnaute Barbatruc
Re : Comment faire réfrence à une matrice?

Bonjour
Mon aide parle de référence matricielle, pas de référence à une matrice.
Qu'entend on par là ? Peut être un nom avec en guise de référence une constante matricielle.
Pourquoi ne voulez vous pas comme tout le monde, ranger tout simplement dans une plage verticale nommée la liste des valeurs ?
À+
 

philmascio

XLDnaute Nouveau
Re : Comment faire réfrence à une matrice?

Bonjour
Mon aide parle de référence matricielle, pas de référence à une matrice.
Qu'entend on par là ? Peut être un nom avec en guise de référence une constante matricielle.
Pourquoi ne voulez vous pas comme tout le monde, ranger tout simplement dans une plage verticale nommée la liste des valeurs ?
À+

Bonjour,

Je suis sur XL 2003, il est bien écrit "référence à une matrice" mais pas dans l'aide: dans les commentaires lors de l'appel de la fonction par le bouton fx.

Le problème d'une plage verticale, c'est qu'elle s'étend sur plusieurs lignes, et une plage horizontale s'étend sur plusieurs colonnes.
L'intérêt d'une constante matricielle est de stocker un ensemble de valeurs dans une seule cellule.
 

Tibo

XLDnaute Barbatruc
Re : Comment faire réfrence à une matrice?

Bonjour,

Pour éviter les interprétations, il serait intéressant que tu postes ton fichier.

Je pense aux fonctions CHERCHE ou TROUVE

Je t'en dis plus dès que tu auras posté un fichier exemple (et commenté).

Bon app

@+
 

philmascio

XLDnaute Nouveau
Re : Comment faire réfrence à une matrice?

Bonjour,

Pour éviter les interprétations, il serait intéressant que tu postes ton fichier.

Je pense aux fonctions CHERCHE ou TROUVE

Je t'en dis plus dès que tu auras posté un fichier exemple (et commenté).

Bon app

@+

Voici le fichier.
 

Pièces jointes

  • ConstMat.xls
    18.5 KB · Affichages: 64
  • ConstMat.xls
    18.5 KB · Affichages: 58
  • ConstMat.xls
    18.5 KB · Affichages: 65
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Comment faire réfrence à une matrice?

Bonjour,

En saisissant tes matrices en dur dans une cellule, Excel ne les reconnait pas comme telle.

Supprime les accolades et essaye cette formule :

Code:
=ARRONDI.SUP(TROUVE(A19;B19)/6;0)

Référence de cellules à adapter

@+
 

Dranreb

XLDnaute Barbatruc
Re : Comment faire réfrence à une matrice?

Code:
=EQUIV(A13;CstMat;0)
Marche avec nom ajouté CstMat ={"1.1";"1.2";"1.4"}
Ceci ne me dit toujours pas pourquoi vous tenez à ce que vos listes soient rangées comme ça ?
Même une fonction qui rend un tableau dans un variant doit être invoquée dans une formule matricielle d'autant de lignes et de colonnes ! Je ne vois aucun intéret à les ranger dans une seule cellule.
Toutefois CHERCHE ou TROUVE sont plus adaptés dans des cas analogues, les listes étant alors des chaînes.
À+
 
Dernière édition:

philmascio

XLDnaute Nouveau
Re : Comment faire réfrence à une matrice?

Code:
=EQUIV(A13;CstMat;0)
Marche avec nom ajouté CstMat ={"1.1";"1.2";"1.4"}
Ceci ne me dit toujours pas pourquoi vous tenez à ce que vos listes soient rangées comme ça ?
Même une fonction qui rend un tableau dans un variant doit être invoquée dans une formule matricielle d'autant de lignes et de colonnes ! Je ne vois aucun intéret à les ranger dans une seule cellule.
Toutefois CHERCHE ou TROUVE sont plus adaptés dans des cas analogues, les listes étant alors des chaînes.
À+

L'intérêt est pourtant immense: quand vous avez tableau qui fait fonction de base de données et qui contient un enregistrement par ligne, vous ne pouvez pas stocker un ensemble de valeurs sur plusieurs lignes.
Et quand cet enregistrement contient un grand nombre de champs (1 colonne = 1 champ) vous ne pouvez pas non plus démultiplier les colonnes à l'infini, surtout quand le nombre de valeurs à stocker n'est ni fixe ni connu à l'avance.
 

Tibo

XLDnaute Barbatruc
Re : Comment faire réfrence à une matrice?

re,

Une cellule peut contenir jusqu'à environ 32000 caractères.

En choisissant de séparer chaque donnée par un point-virgule, ça permet effectivement de stocker un grand nombre de valeurs dans une seule cellule.

La fonction CHERCHE (ou TROUVE) permet ensuite de savoir si la valeur cherchée est présente ou non.

Pour déterminer son emplacement, plusieurs méthodes :

Chaque valeur occupe la même longueur : pas difficile : on divise l'emplacement de la valeur par la longueur de chaque valeur

Chaque valeur n'occupe pas la même longueur : il faut alors calculer le nombre de points-virgules qui précèdent l'emplacement de la valeur cherchée.

Reviens avec une description plus précise et plus détaillée de ton problème pour qu'on puisse t'aider plus efficacement.

@+
 

Dranreb

XLDnaute Barbatruc
Re : Comment faire réfrence à une matrice?

La méthode normale en Excel est de stocker les valeurs sur plusieurs lignes en répétant sur chacune un identifant de l'enregistrement logique. Mais selon la réalité que l'ensemble modélise et ses liens avec d'autres, peut-être vaudrait-il mieux utiliser Access pour la maintenance des donnée et ne garder Excel que pour la présentation de résultats et études statistiques.
 

philmascio

XLDnaute Nouveau
Re : Comment faire réfrence à une matrice?

re,

Une cellule peut contenir jusqu'à environ 32000 caractères.

En choisissant de séparer chaque donnée par un point-virgule, ça permet effectivement de stocker un grand nombre de valeurs dans une seule cellule.

La fonction CHERCHE (ou TROUVE) permet ensuite de savoir si la valeur cherchée est présente ou non.

Pour déterminer son emplacement, plusieurs méthodes :

Chaque valeur occupe la même longueur : pas difficile : on divise l'emplacement de la valeur par la longueur de chaque valeur

Chaque valeur n'occupe pas la même longueur : il faut alors calculer le nombre de points-virgules qui précèdent l'emplacement de la valeur cherchée.

Reviens avec une description plus précise et plus détaillée de ton problème pour qu'on puisse t'aider plus efficacement.

@+

Merci Tibo,

La piste CHERCHE et TROUVE est intéressante.
Mais il faut que je creuse encore le sujet car elle "renvoie le numéro du caractère au niveau duquel est trouvé un caractère ou le début d'une chaîne de caractères" ce qui peut poser un problème:

chaine=10;1;157
cherche(1;chaine) retourne 1

cela impose de trier les membres de la chaine à la "façon excel" à savoir: 1;10;157;2;2036;34 etc...

mais c'est déjà un début de solution.

Sinon, j'avais joint mon fichier pour illustrer mon sujet, je le remet.
 

Pièces jointes

  • ConstMat.xls
    18.5 KB · Affichages: 54
  • ConstMat.xls
    18.5 KB · Affichages: 54
  • ConstMat.xls
    18.5 KB · Affichages: 57

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 087 954
Membres
103 686
dernier inscrit
maykrem