Nous sommes le Sam 28 Juin, 2025 22:55
Supprimer les cookies

Conversion d'une formule Excel en Calc

Sur le logiciel libre en général ou un logiciel libre en particulier

Mer 12 Avr, 2006 09:28

J'essaye de traduire une formule Excel au format Calc. Il s'agit au final de réaliser une copie partielle d'une liste de notes. J'ai nommé Champ la zone A2:B36 et Nom la zone D2.

EQUIV(Nom&LIGNE(Champ);Champ&LIGNE(Champ);0)

J'obtient le résultat Err :504 au lieu de la colonne verte vive attendue (1, 3, 5 et 7 indiquant la position de Patricia dans la matrice, le reste devant renvoyer une erreur). Cliquez sur l'image pour la voir à sa taille réelle.

Image

Comment faire pour obtenir le résultat escompté? Merci à tous.
Pyanepsion

Messages : 65

Mer 12 Avr, 2006 13:04

Je ne comprend pas bien ce que tu veux faire. Si c'est juste afficher les notes de patricia (dans l'exemple) ça ne semble pas compliqué, mais là je ne vois pas d'ou sortent tes 1,3,5 7 dans ta dernière colonne ni à quoi ça va te servir.
belette

Messages : 56

Mer 12 Avr, 2006 13:24

Bonjour.

Chez moi, pour avoir la même chose que vous, j'ai du d'abord rentrer les formules en f2:f36 et g2:g36 comme matricielles. J'ai alors nommé f2:f36=un et g2:g36=deux et j'ai rentré en h2:h36 la formule =EQUIV(un;deux;0) comme matricielle et là,... ça marche. Le pb résiderait-il donc dans l'imbrication de deux formules matricielles ?

Par contre, la formule (toujours matricielle) =(nom&LIGNE(champ)=champ&LIGNE(champ))*LIGNE(champ) renvoie le n° de ligne de l'enregistrement, s'il existe, sinon 0.
Marco

Messages : 67
Géo : Le Pays Noir

Mer 12 Avr, 2006 15:35

La colonne F est matricielle. La formule =Nom&Ligne(Champ) appliquée à la matrice fonctionne.
La colonne G est matricielle. La formule =Champ&Ligne(Champ) appliquée à la matrice fonctionne.
la colonne H est matricielle. La formule EQUIV(Nom&Ligne(Champ);Champ&Ligne(Champ);0) appliquée à la matrice ne fonctionne pas.

Il s'agit d'obtenir directement le résultat obtenu en colonne I sans passer par les colonnes F et G mis seulement là à titre d'explication de mon incompréhension.

Merci à toi Marco. :D Ce n'est pas tout à fait le résultat attendu mais cela à le mérite de fonctionner. À propos pourquoi obtient-on 2 pour le numéro de ligne, c'est-à-dire depuis le haut de la feuille et non pas le numéro de ligne interne à la matrice? Faut-il utiliser une autre fonction que LIGNE()?
--
Je continue dans mon problème. J'ai donc maintenant les emplacements de Patricia dans la zone Champ. Je souhaiterais les regrouper en début, en haut, de liste. Pour obtenir dans cet exemple de haut en bas : 1;3;5;7 puis rien. Pour cela je pensais utiliser la fonction PETITE.VALEUR().

J'applique sur la matrice de la colonne verte la fonction =PETITE.VALEUR((Nom&LIGNE(Champ)=Champ&LIGNE(Champ))*LIGNE(Champ)). Cela ne fonctionne pas. Où est l'erreur? Comment la corriger?
Pyanepsion

Messages : 65

Jeu 13 Avr, 2006 11:33

pourquoi obtient-on 2 pour le numéro de ligne, c'est-à-dire depuis le haut de la feuille et non pas le numéro de ligne interne à la matrice?


Si j'ai bien compris, ligne() renvoie le n° de ligne (référence) de la cellule, alors que equiv() est censé renvoyer le position relative de la cellule dans la matrice.
Marco

Messages : 67
Géo : Le Pays Noir

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit