Rang d'une donnée dans un tableau

Tibo

XLDnaute Barbatruc
Bonjour tout le monde,

J'ai un tableau qui comporte une trentaine de colonnes.

Toutes les colonnes ne sont pas remplies.

Existe-t-il une formule qui puisse me donner le numéro de colonne dans laquelle se trouve la 1ère valeur, puis la 2ème valeur, etc.

Par exemple, sur mes 30 colonnes, je peux avoir la 1ère valeur dans la 3ème colonne, la 2ème valeur dans la 10ème colonne, ...

La fonction ressemblerait à un EQUIV, si ce n'est que je ne connais pas la valeur à rechercher puisqu'elle est variable.

La solution se trouve peut-être parmi les fonctions matricielles, mais là, j'avoue que je décroche un peu.

Merci d'avance à ceux ou celles qui regarderont ce problème.

Bonne journée

@+
 

mutzik

XLDnaute Barbatruc
Bonjour Tibo, AV

Sinon par VB

Sub PetitDeviendraGrand()
Sheets('feuil1').UsedRange.Select
petit = 0
grand = 0
For Each cell In Selection
If cell.Value PLUSPETIT petit Then
petit = cell.Value
adrPetit = cell.Address
End If
If cell.Value PLUSGRAND grand Then
grand = cell.Value
adrGrand = cell.Address
End If
Next cell

MsgBox 'petit = ' & petit & ' ' & adrPetit & vbCrLf & 'grand = ' & grand & ' ' & adrGrand
End Sub

c'est comme tu le sens ... ;)
NB remplacer les mots PLUSPETIT et PLUGRAND par les signes correspondants

Message édité par: mutzik, à: 27/03/2006 09:37
 

Tibo

XLDnaute Barbatruc
Merci Alain, Bertrand,

Alain, ta formule me donne le rang de la 1ère plus grande valeur.

Bertrand, étant formuliste, je n'ai pas tout compris, il me semble que ça ressemble à la solution d'Alain.

Mon souhait était de pouvoir retourner le rang de la nième valeur. Par exemple, parmi mes 30 colonnes, j'ai 3 valeurs (ça peut être plus) réparties de façon aléatoire. Je souhaite connaître le rang de la 1ère, de la 2ème et de la 3ème.

Je reste à votre disposition pour plus de précisions si pas clair.

Merci encore.

@+
 

Tibo

XLDnaute Barbatruc
Bonsoir,

Je relance ce fil avec l'espoir qu'un Excelliste émérite puisse trouver une solution.

Je continue de chercher de mon côté, mais c'est pas facile.

Je joins un petit fichier qui décrit ce que je souhaite obtenir.

J'espère que c'est réalisable.

Merci d'avance à qui trouvera (je mets une duvel au frais ;) )

Bonne soirée

@+ [file name=___rang_donnees_dans_tablo.zip size=2455]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/___rang_donnees_dans_tablo.zip[/file]
 

Pièces jointes

  • ___rang_donnees_dans_tablo.zip
    2.4 KB · Affichages: 19

Monique

Nous a quitté
Repose en paix
Bonjour,

Pas trop compris ce que tu voulais

N° de colonne de la plus grande valeur, puis de la 2ème grande valeur, etc
En B30 :
=SOMMEPROD((Tablo=GRANDE.VALEUR(Tablo;COLONNES($B30:B30)))*COLONNE(Tablo))
à copier-coller vers la droite
Mais… il ne faut pas de doublons

N° de la première colonne non vide du tableau puis de la 2ème colonne non vide, etc :
En B31 avec A31 vide :
=MIN(SI(Tablo différentde '';SI(COLONNE(Tablo)>A31;COLONNE(Tablo))))
à valider par ctrl, maj et entrée
et à copier-coller vers la droite

Edit
Pas vu ton fichier,
mon message a eu du mal à passer

Message édité par: monique, à: 27/03/2006 19:57
 

Tibo

XLDnaute Barbatruc
Bonsoir Monique,

Je vais faire des essais avec ce que tu viens de me donner.

Je vais tenter une autre explication :

Dans mon tablo, les colonnes ne sont jamais toutes remplies.

Je souhaite obtenir l'équivalent d'une transposition, mais uniquement avec les colonnes qui contiennent des données.

J'espère être plus clair :whistle:

Bonne soirée.

Je te dis quoi demain après avoir fait les essais.

@+
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonsoir Tibo, Alain, Bertrand et Monique, bonsoir à toutes et à tous :)

Pour l'exemple que tu as mis en ligne, et si j'ai bien compris, j'ai utilisé la formule suivante qui me donne les colonnes non vides les unes à la suite des autres (matricielle en A15) :

=MIN(SI($A$8:$I$8‹›'';SI(NB.SI($A$14:$A14;COLONNE($A$8:$I$8))=0;COLONNE($A$8:$I$8))))

J'espère que ça correspond à ce que tu cherches à obtenir :unsure:

EDITION : Oups !!! Désolé Monique, je n'avais pas fait attention à ta seconde formule :eek:

A+ ;) :eek:

Message édité par: Charly2, à: 27/03/2006 20:11
 

Monique

Nous a quitté
Repose en paix
Re,

Une autre

Avec A14 vide ou contenant un 0
En A15 :
=MIN(SI($A$8:$J$8 différent de '';SI(COLONNE($A$8:$J$8)>A14;COLONNE($A$8:$J$8))))
à copier-coller vers le bas
Et tu la mets au conditionnel si tu veux, parce que ça redémarre à 0 quand toutes les données sont épuisées
 

Tibo

XLDnaute Barbatruc
Bonjour à tous,

Je reviens avec mon petit problème de tableau.

La formule de Charly (tout comme celle de Monique) fonctionne.

Mon souhait maintenant est de pouvoir gérer un tableau de plusieurs lignes.

J'espère que c'est possible.

Le plus simple est de regarder le fichier joint dans lequel j'ai mis des explications.

Merci

@+
 

Tibo

XLDnaute Barbatruc
Bonjour tout le monde,

Je viens de voir que le fichier n'était pas joint :S

J'en profite donc un peu pour relancer.

Merci

Bonne soirée

@+

Edit : je suis fatigué... : j'avais oublié de zipper :eek: [file name=_formule_rang_donnees_dans_tablo.zip size=3464]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/_formule_rang_donnees_dans_tablo.zip[/file]

Message édité par: tibo, à: 29/03/2006 18:10
 

Pièces jointes

  • _formule_rang_donnees_dans_tablo.zip
    3.4 KB · Affichages: 14

Monique

Nous a quitté
Repose en paix
Bonjour,

Dans le fichier joint, peut-être une manière de nommer le tableau,
sinon, tu as bien un calcul de colonnes mais ce n'est pas ça que tu cherches
Si ça peut donner des idées... [file name=ColonnesTibo.zip size=4750]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ColonnesTibo.zip[/file]
 

Pièces jointes

  • ColonnesTibo.zip
    4.6 KB · Affichages: 30

Monique

Nous a quitté
Repose en paix
Bonjour,

Le tableau est nommé par formule
Tu as le cumul du nb de valeurs à chaque ligne du tableau
La formule prend en compte une plage nommée 'Plage'
qui change de références à chaque fois que le nb de lignes
(le nb de valeurs déjà trouvées)
correspond à un des cumuls.

Ensuite, c'est :
GRANDE.VALEUR(SI(condition;COLONNE(Plage));NbPlage-LIGNE()+4)
'NbPlage', c'est le cumul se trouvant sur la ligne de 'Plage' [file name=ColonnesTiboV1.zip size=6959]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ColonnesTiboV1.zip[/file]
 

Pièces jointes

  • ColonnesTiboV1.zip
    6.8 KB · Affichages: 32

Tibo

XLDnaute Barbatruc
Bonjour Monique,

J'ai regardé hier soir ta solution.

Assez impressionnant (en fait très impressionnant !!! ).

J'ai tenté de l'adapter à mon application mais je rencontre quelques difficultés. Je vais profiter du week-end pour étudier et comprendre tes formules et pouvoir (je l'espère) les adapter.

Merci énormément pour que ce tu m'apportes (et m'a déjà apporté) sur Excel.

A bientôt
 

Discussions similaires

Réponses
4
Affichages
300

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS