XL 2010 Conditions multiples et références

Bixente

XLDnaute Nouveau
Bonjour le Forum,

Je reviens vers les experts car je touche encore mes limites !!!!

Je décris mon besoin au travers du fichier ci-joint car je ne sais même pas l'exprimer en français !!

Je souhaiterais importer le tableau de la feuille "tables" dans le tableau de la feuille "données", en fonction du n° inscrit sur la 1ère ligne et de la position de ce n° (c'est là que ça se gâte).

Par exp la cellule B3 = 13 ; B4 = 11 ; B 5 = "" car le n° correspond au type B et que nous sommes sur la 1ère case de ce n°.
La cellule h3 = 8 ; H44 = 8 ; H 5 = "" car le n° correspond au type B et que nous sommes sur la 7ème case de ce n°.

Merci d'avance pour votre aide via des formules car je ne peux pas utiliser VBA.

En espérant vous lire.

Bixente.
 

Pièces jointes

  • Aide formule.xlsx
    11 KB · Affichages: 33

vgendron

XLDnaute Barbatruc
Hello

Pas tout compris; mais voici un essai en PJ
Tab est une zone nommée qui contient tes tables D1:AU5

Dans ta feuille Données, il y a une ligne intermédiaire (7) pour déterminer quelle colonne 'A B ou C', il faut aller chercher
 

Pièces jointes

  • Aide formule.xlsx
    13 KB · Affichages: 28

vgendron

XLDnaute Barbatruc
pour comprendre les formules...
Fonction Index
---> renvoie l'élément de la Tab situé en ligne LIG et colonne COL

maintenant. il "suffit" de déterminer les coordonnées LIG et COL de l'élément
Pour LIG: facile
sur la première ligne de Données (ligne3 excel), il faut renvoyer la première ligne de Tables
sur la seconde ligne de données (ligne 4 excel) , il faut renvoyer la seconde ligne de Tables
--> lignes($B$2:B2) --> renvoie le nombre de lignes entre B2 et B2 -->1
si tu tires vers le bas, ca devient lignes ($B$2:B3) -->2 ($B$2 ayant été fixéepar les $ et ne bouge donc pas)

maintenant. pour COL.. plus coton..
la première Colonne (B) de Données correspond à la première partie de tes Tables (D1G5)
la seconde Colonne (C) de Données correspond à la seconde partie de tes tables (H1:K5) ....
il faut faire la correspondance entre colonne B ou C ou D.. avec la nieme partie de tes tables
en ligne 5 de Tables, une petite formule pour te donner le numéro de ces sous-tables
donc. idem avec la fonction Colonnes($B$2:B2) je récupère 1 2 ou 3.... qui correspond au numéro de la sous table qu'il faut aller voir

une sous table = 4 colonnes
donc. je fait colonnes(B2:B2)*4 pour me déplacer de sous table en sous table
et maintenant. DANS cette sous table. il faut savoir s'il faut la colonne A B ou C
et ca. c'est avec la formule de la ligne 7 (feuille données)

Voila...

et pour que la formule fonctionne avec les numéros suivants.. il faut que les sous tables existent dans la feuille Tables : la. tu n'en as que 11 --> ca s'arrete à la colonne L qui est la 11eme colonne de ton tablo
 

Bixente

XLDnaute Nouveau
J'ai pas tout pigé mais je vais m'y pencher dessus.

Par contre la table est complète.
En fait, en fonction du n° de la 1ère ligne il faut aller chercher soit la colonne A, B ou C.
Pour que ça fonctionne avec ta formule il faut remplacer le $B$2 dans COLONNES($B$2:B2) par la case de départ du nouveau n° ($L$2 dans mon exemple).

Mais l'idée bien sûr c'est de ne pas avoir à le faire manuellement :)
 
Dernière édition:

vgendron

XLDnaute Barbatruc
normalement non, il n'y a rien à changer. sauf si la demande n'a pas été comprise correctement...

au début tu as écris:
Par exp la cellule B3 = 13 ; B4 = 11 ; B 5 = "" car le n° correspond au type B et que nous sommes sur la 1ère case de ce n°.
La cellule h3 = 8 ; H44 = 8 ; H 5 = "" car le n° correspond au type B et que nous sommes sur la 7ème case de ce n°.

je que j'en ai compris
cellule B3 - B4 - B5 --->Lettre B = 1ere case de ton tablo feuille Données
1ere case = 1ere colonne ---> 1ere "sous table" feuille Tables (D1:G4)
le n° dont tu parles. je suppose que c'est le nombre 1810 --->lequel est compris entre 1000 et 3000 ---> Colonne B de la sous table

cellule H3 - H4 -H5-->Lettre H = 7eme case de ton tablo feuille Données
7eme case = 7eme colonne --->7eme "sous table" feuille Tables (AB1:AE4)
le n° dont tu parles. je suppose que c'est le nombre 1810 --->lequel est compris entre 1000 et 3000 ---> Colonne B de la sous table

Dans ta feuille Données en colonne L
L = 11eme case -->11eme sous table =(AR1:AU4 de la feille Tables)
n°=106 <500---> colonne C de la sous table

dans ta feuille Données, colonne M ---> c'est la 12eme case.. donc 12eme "sous table"
celle ci n'existe pas dans ta feuille Tables.. donc.. pas de résultat..

sinon, pour plus de détails de chaque fonction.. la touche magique.. F1

et si ma compréhension n'est pas la bonne.. et bien. il va falloir etre plus précis dans ta demande.. :-D
 

Bixente

XLDnaute Nouveau
Pour être plus précis :

la plage tab est fixe et complète.
le tableau sur la feuille "données" est en fait un planning (j'ai ajouté les jours), qui va donc s'incrémenter au fur et à mesure.

l'idée c'est donc d'ajouter sur le planning la valeur correspondante sur la table.
par exemple, si c'est la 4ème fois qu'un n° (sur la ligne 2) se répète et que ce n° correspond au type A, alors il faudra aller chercher la valeur à l'intersection de 4.1 (ou 4.2 ou 4.3 suivant sur quelle ligne on est) et de A (ici la valeur est 6.

Merci encore de ton aide !!!
 

Pièces jointes

  • Copie de Aide formule.xlsx
    14 KB · Affichages: 18

vgendron

XLDnaute Barbatruc
effectivement.. avec plus d'explications, c'est plus facile..
cela dit.. meme avec cette nouvelle définition. je persiste.. ta Table est incomplète.... (ou la demande...)
106 apparait 14 fois ! --> tu n'as que 11 sections...

autre point
pour savoir s'il faut colonne A B ou C, tu as un test
A >7000
1000<B<3000
C<500

et si le nombre est 800??? ou 5000 ???
 

Pièces jointes

  • Copie de Aide formule.xlsx
    14.7 KB · Affichages: 22

Bixente

XLDnaute Nouveau
Merci beaucoup pour le temps que tu me consacres !!!!

Pour les fois où le n° apparait + que 11 fois ----> il faudrait faire apparaitre 0.
Pour les autres conditions en termes de n° ce n'est pas important, le cas ne se présentera pas.

penses-tu qu'il est possible d'avoir tous les calculs dans une seule formule, sans passer par des calculs intermédiaires comme tu l'as fait ?

Je me permets de te solliciter car ça parait si simple pour toi :cool:
 

vgendron

XLDnaute Barbatruc
Tu peux effectivement avoir tout imbriqué dans une seule formule..
par contre. attention.. à l'avenir.. tu risques de te faire mal lorsque tu vas vouloir la comprendre pour la modifier si besoin..
du coup. je te laisse quand meme les calculs intermédiaires.. tu peux les effacer.. si tu es joueur ;-)

D'ailleurs. j'étais en train de te proposer une autre solution. avec une autre facon de présenter ta Table..
du coup. je voix que les deux formules ne donnent pas le meme résultat.. pour la colonne L (Jour 11)

à voir laquelle est bonne..?
 

Pièces jointes

  • Copie de Aide formule.xlsx
    16.1 KB · Affichages: 21
  • Copie de Aide formule.xlsx
    25.5 KB · Affichages: 28

Bixente

XLDnaute Nouveau
Au moment où je commençais à saisir ta formule, tu m'en sort une autre !!!;)
Pour la différence de résultat ça vient juste du fait que dans le 1er cas il y a une inversion entre le type A et le type C.

En tout cas je te remercie énormément, je vais essayer de l'adapter à mon fichier source et je te tiens au courant.

Bonne soirée.
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 783
Membres
101 817
dernier inscrit
carvajal