Microsoft 365 DECALER, ADRESSE, INDIRECT... un peu perdu...

Amanite

XLDnaute Nouveau
Bonjour.

J'avoue avoir beaucoup de peine avec les fonctions DECALER, INDIRECT etc...

Je cherche à faire une chose apparemment simple, et une seconde sans doute moins simple.

La chose simple

- j'ai une colonne avec, toutes les 10 lignes, un bloc de texte de 3 lignes (onglet "Données à récupérer" du fichier ci-joint). Certain bloc n'ont pas forcément toutes les 3 lignes saisies.

- dans une autre feuille du même classeur ("destination des données"), j'aimerai récupérer les valeurs de ces mots dans une nouvelle colonne.... mais qui cette fois doivent s'afficher toutes les lignes !

- pour simplifier, je ne veux récupérer que le premier mot de chaque bloc, et je referai l'opération sur une 2ème colonne pour le 2ème mot, idem pour le 3ème

Si j'ai au moins ça, ce serait déjà génial, je peux me débrouiller.

La chose compliquée

Évidemment, ce qui serait top, ce serait de récupérer d'un coup les 3 lignes de chaque bloc pour les mettre juxtaposés en colonne, sans intervalle de ligne, comme dans l'onglet "destination des données (2)"

J'ai mis des codes couleur pour bien illustrer ce que devrait être le rendu.

Merci beaucoup pour vos conseils !
 

Pièces jointes

  • Decaler puzzle.xlsx
    13 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Amanite,
En PJ une solution simple sans Indirect,Décaler... mais avec un simple Index :
VB:
=SI(INDEX('Données à récupérer'!A:A;10*LIGNE()-9)="";"";INDEX('Données à récupérer'!A:A;10*LIGNE()-9))
Pour plusieurs colonnes alors le -9 devient -9+1 puis -9+2 ....
 

Pièces jointes

  • Decaler puzzle.xlsx
    12.9 KB · Affichages: 3

Amanite

XLDnaute Nouveau
Merci pour ces réponses rapides.

Silvanu, pouvez-vous m'expliquer la formule ? Que signifie le -9 ?

Comme ma vraie plage de données ne commence pas à la ligne 1 (et donc sélectionner toute la colonne A:A ne me paraît pas faisable ?), j'ai sélectionné et donné un nom à ma plage de donnée.

De plus, j'ai uniformisé les écarts de sorte que c'est maintenant toutes les 11 lignes.

Votre formule devient la suivante :

VB:
=@SI(@INDEX(Professions;11*LIGNE()-10)="";"";INDEX(Professions;11*LIGNE()-10))

(Excel m'a ajouté un @ devant la formule...)

Bref, ça ne fonctionne pas, j'ai un retour aberrant de données.

Pour info, ma plage de donnée commence en cellule A5, et ma première colonne de destination est dans un autre onglet en cellule Y6.

Qu'y a-t-il de faux ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Vos données d'entrée commencent en 1,11,21,31.....
La première donnée en réception est en ligne 1, donc on a :
Ligne 1 Données en 1
Ligne 2 Données en 11
Ligne 3 doonées en 21
Ce qui fait Ligne à lire = 10* LIGNE() -9

Dites nous en quelle ligne commence vos données et en quelle ligne commence le tableau de réception données.
 
Dernière édition:

R@chid

XLDnaute Barbatruc
Bonsoir @ tous,
(Excel m'a ajouté un @ devant la formule...)
Oui c'est Excel pour Microsoft 365 qui fait cela.

@rachid : votre formule ne fonctionne pas. Je ne peux pas la placer en A1 (voir ci-dessus)
Ma formule fonctionne bien et renvoie bien le résultat escompté.
Je ne comprends pas que voulais-tu dire par "Je ne peux pas la placer en A1" ?

Voir PJ



Cordialement
 

Discussions similaires

Réponses
4
Affichages
291

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87