Formule RECHERCHE
RésoluJ'ai un fichier Excel, avec une première feuille, dont je notifie mes boitiers 'Hors PARC' lorsque les vrais boitiers ne sont pas arrivés.
Cela est donc destiné à l'un de mes camions.
Dans ma seconde feuille, j'ai noté mes boitiers 'Hors PARC' que je dispose (de 1 à 4).
J'aimerais effectuer la liaison entre les deux, et remplir automatiquement les colonnes dans la deuxième feuille.
Dans la seconde feuille :
- Avoir dans la colonne B, la dernière date (la plus récente) du HP 1 ;
- Avoir dans la colonne C, le dernier camion (avec la date la plus récente) du HP 1 ;
etc..
Si vous pouvez m'aider, car je n'y arrive pas...
Lien : https://www.cjoint.com/c/KKEiMkZEy8s
Merci à vous.
Cordialement,
Romain
32 réponses
Un utilisateur cherche à relier deux feuilles Excel afin que les boîtiers 'Hors PARC' notés sur la première feuille alimentent automatiquement la seconde, en affichant pour HP 1 la dernière date et le camion correspondant. Plusieurs formules matricielles ont été proposées pour renvoyer ces valeurs, utilisant NB.SI, PETITE.VALEUR et INDEX afin d’obtenir la date la plus récente et le véhicule associé pour chaque HP. Des ajustements ont été effectués, notamment le recours à des plages nommées (Dates, N_Parc, Immat, H_Parc) pour simplifier les formules et permettre leur propagation sur les lignes suivantes. En pratique, les formules matricielles et les plages nommées suffisent, mais sur de grandes bases il peut être utile d’envisager des alternatives plus performantes.
-
Salut Mike,
Un grand merci cela correspond tout à fait, un grand merci encore une fois !!
Rom1 -
Re,
tu peux me dire si le dernier fichier que je t'ai retourné répond à tes attentes que je le détruise de mon système
Merci. -
Re,
teste ce fichier, j'ai allégé les formules voir si elles répondent à tes attentes
https://www.cjoint.com/c/LDgtY4j0ENF
-
Re,
Je suis un peu bousculé ces temps ci, mais voilà, il suffit de changer les formules toujours en matricielles en D4, E4 et F4
https://www.cjoint.com/c/LDgpqnRzeQF -
Bonjour Mike-31,
Super, cependant il me reste une dernière petite erreur.
Sur ma feuille 'Suivi des Hors Parc', j'ai le HP 44 qui m'indique qu'il est en Date depuis le 06/03, mais qu'il est en stock (en colonne E & F).
Hors, sur ma feuille 'Suivi des remplacements boitiers', j'ai deux lignes avec le HP 44 :
- le 12/01/2022, sur le TR 224. Cela est revenu en stock le 23/02.
- le 06/03/2022, sur le TR 224. Cela n'est pas revenu en stock et est toujours le TR.
Lien : https://www.cjoint.com/c/LDfjURCA7Cs
Cordialement,
Rom1 -
Re,
En D4 comme en E4 la formule se termine par ;""));"")
remplace le dernier "")
par ce complément et valide en matricielle
SI([@[Numéro de série
S/N]]<>"";"En Stock";"")) -
Bonjour Mike-31,
Après des semaines d'utilisation du fichier j'y rencontre des souci...
Comme tu peux le voir, la feuille 'Suivi des Hors Parc' ne s'actualise pas du tout avec les dates de la feuille 1, comme prévu...
Par hasard, lorsqu'un boitier n'est pas indiqué dans la feuille 1, comme le HP 2 par exemple, pourrions-nous mettre dans le numéro de PARC et dans l'immat "En Stock" ?
Lien : https://www.cjoint.com/c/LDbhzAAC84s
Merci à toi pour ton retour. -
Super, un grand merci à toi :D
Cordialement,
Rom1 -
-
C'est encore moi.
Je viens de me rendre compte que j'ai rentré une date dans la colonne (Date retour Télépéage des exploits) mais dans ma feuille B, cela me met toujours le numéro de camion en question sur cette ligne, et non "En Stock" comme prévu car j'ai une date de retour.
Rom1 -
Bonjour Mike,
Effectivement c'est moi qui ai m*rdé...
Super en tout cas, un grand merci à toi !
Rom1 -
As tu confirmé les formules en matricielles,
lorsque tu actives une cellule contenant une formule, dans la barre des formules es ce que la formule est entre ces accolades {}
sinon clic sur la formule dans la barre des formules et clic en même temps sur les trois touches Ctrl Shift et Entrée
https://www.cjoint.com/c/LAhl6P0K7IF
-
Bonjour Mike,
J'ai copié exactement tes formules, et et bien remplacé les termes pas les miens, mais cela me laisse la case invisible, comme ci il y avait une erreur. -
Re,
En me replongeant sur ta demande, je m'aperçois que dans mes dernières formules j'ai omis de traiter le retour en stock.
Pour alléger les formules je te conseille de nommer tes plages et ajouter dans Suivi des remplaçement boitiers F2:F30 nommée Stock
en B3 la formule matricielle devient=SIERREUR(SI(SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Stock;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"")>0;SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Stock;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"");SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Dates;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));""));"")
en C3=SIERREUR(SI(SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Stock;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"")>0;"Stock";SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(N_Parc;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));""));"")
en D3=SIERREUR(SI(SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Stock;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"")>0;"";SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Immat;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));""));"")
-
Re,
Alors toujours en formule matricielle, sur ton onglet Suivi des Hors Parc cellule B3
=SIERREUR(SI(NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A3)<=NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A3);INDEX(TableauSuiviBoitiersEurope[DATE];PETITE.VALEUR(SI(TableauSuiviBoitiersEurope[HORS PARC]=A3;LIGNE(INDIRECT("1:"&LIGNES(TableauSuiviBoitiersEurope[HORS PARC]))));NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A3)));"");"")
en cellule C3=SIERREUR(SI(NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A3)<=NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A3);INDEX(TableauSuiviBoitiersEurope[N° PARC];PETITE.VALEUR(SI(TableauSuiviBoitiersEurope[HORS PARC]=A3;LIGNE(INDIRECT("1:"&LIGNES(TableauSuiviBoitiersEurope[HORS PARC]))));NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A3)));"");"")
et en cellule D3=SIERREUR(SI(NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A4)<=NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A4);INDEX(TableauSuiviBoitiersEurope[immat.];PETITE.VALEUR(SI(TableauSuiviBoitiersEurope[HORS PARC]=A4;LIGNE(INDIRECT("1:"&LIGNES(TableauSuiviBoitiersEurope[HORS PARC]))));NB.SI(TableauSuiviBoitiersEurope[HORS PARC];A4)));"");"")
incrémente les 3 formules vers le bas
par contre si tu nommes tes plages, par exemple onglet Suivi des remplaçement boitiers plage A3:A30 nommée Dates la plage B3:B30 nommée N_Parc la plage C3:C30 nommée Immat et la plage D3:D30 nommée H_Parc
la formule onglet Suivi des Hors Parc cellule B3 devient=SIERREUR(SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Dates;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"");"")
en C3=SIERREUR(SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(N_Parc;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"");"")
et en D3=SIERREUR(SI(NB.SI(H_Parc;A3)<=NB.SI(H_Parc;A3);INDEX(Immat;PETITE.VALEUR(SI(H_Parc=A3;LIGNE(INDIRECT("1:"&LIGNES(H_Parc))));NB.SI(H_Parc;A3)));"");"")
A toi de choisir
-
Bonjour Mike,
C'est exactement cela, et si j'ai plusieurs dates au même jour, j'aurais que le premier véhicule dans la liste, et non la ligne correspondant au numéro de boitier.
Merci de ton aide.
Cordialement,
Rom1 -
Re,
Si j'ai bien compris ton retour, tu aurais deux dates le même jour et Excel te retourne le premier N) parc et immat etc ... équivalent à la première date de ta colonne
Es ce cela !
-
Re-bonjour Mike,
J'ai un petit souci sur ma deuxième feuille :
Lorsque je change par exemple des boitiers le même jour, cela me met les valeurs du premier boitier (rempli dans la feuille 1)...
Saurais-tu m'aider pour cette dernière étape stp ?
Cordialement
Rom1 -
Merci à toi pour ton aide Mike, ça m'aide fortement :D
Cordialement
Romain -
Re,
contrairement à une formule classique, une formule matricielle va effectuer plusieurs calculs sur une plage ou il faudrait normalement en effectuer plusieurs ce qui est le cas dans ta demande ou il faut boucler sur plusieurs valeurs pour extraire la valeur MAX
exemple si tu sélectionnes la cellule C3, et dans la barre des formules sélectionne cette partie de formule
'Suivi des remplaçement boitiers'!$A$3:$D$9 et que tu clic sur la touche de fonction F9
tu verras s'afficher ça qui correspond aux données de ta plage
{43821.105."a"."HP 1";43957.120."b"."HP 3";44160.102."c"."HP 2";44277.119."d"."HP 2";44373.100."e"."HP 1";44492.272."f"."HP 4";44580.150."g"."HP 2"}
43821 est une des dates de la plage ,105 est la valeur N° Parc, a est une des valeurs que j'ai saisi en IMMAT, HP 1 le critère puis idem pour la ligne suivante
Donc Excel va rechercher le, critère dans toutes ces lignes.
pour sortir de ce mode matriciel et retrouver ta formule clic sur Echap
regarde ce tutoriel
https://www.cours-gratuit.com/tutoriel-excel/tutoriel-excel-formules-matricielles
- 1
- 2