Partager via

RechercheV avec dates

Anonyme
2021-07-02T12:38:22+00:00

Bonjour,

je souhaiterais que dans la colonne "Rente mensuelle AI" en cellule E68 et suivantes, les valeurs du tableau en B47 s'ajoutent automatiquement en fonction de la date renvoyée tout à gauche en A68.

J'ai essayé la formule =SI(A68="";"";RECHERCHEV(A68;$B$47:$D$54;1;VRAI)) mais je me retrouve toujours avec la dernière valeur du tableau...

j'ai déjà essayé différentes solutions trouvées sur internet mais même en modifiant les formats de date le résultat reste toujours le dernier de la liste...

j'ai toujours la possibilité de contourner le problèmes avec des "=SI" mais ce serait moins propre et chronophage....

Merci pour la réponse !

Si possible j'aimerais également pouvoir automatiser les dates du tableau ci-dessous:

je ne sais pas si c'est possible mais j'aimerais avoir une formule qui introduise automatiquement les dates du tableau en D47.

il faudrait que les dates concernant des mois qui ne sont pas entiers (p. ex. si une date va du 15 au 30) soient ajoutées dans "Mois partiels" et si cela concerne le mois est en entier le mettre dans "Mois entiers".

Le plus important pour moi est que mon premier problème soit résolu alors si pour le 2ème cas ce n'est pas possible tant pis :) !

Voici le lien vers le fichier sans infos confidentielles pour que vous puissiez tester:

https://mega.nz/file/I6IlXaYL#3GbPJFtcrh2oxAzDPtQGDjHT1jf0a1Oy8V3gQKKqoms

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. DanielCo 107.7K Points de réputation
    2021-07-05T17:06:44+00:00

    Apparemment, le RECHERCHEV cherche dans la plage B47:B54 la valeur de A68 qui doit être une date. Or, il n'y a pas de date dans cette page. Un peu au hasard, essaie :

    =SI(A68="";"";INDEX($B$47:$B$54;EQUIV($A$68;$D$47:$D$54;1)))

    Qui cherche A68 dans la plage D47:D54 et renvoie la valeur correspondante de B47:B54.

    Daniel

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

  1. Anonyme
    2021-07-05T17:01:02+00:00

    Bonjour,

    Je sais bien que ce que tu essayes de calculer c'est de trouver où se trouve 43405 (1.11.2018 en nombre) dans le tableau, et de renvoyer le montant correspondant, 733.

    Le problème de base, c'est que le montant se situe à gauche de la date.

    RechercheV sert pour consulter une table organisée en lignes, avec la colonne de gauche contenant les valeurs à chercher, et les N colonnes de droite contenant les valeurs tabulées. Donc l'inverse de ce que tu cherches.

    Pour ce faire, il faut donc décomposer RechercheV:

    • la recherche de la ligne: EQUIV($A68; $D$47:$D$54; 1)
    • la recherche de la valeur cible: INDEX($B$47:$D$54; la_ligne; 3)

    et la formule finale devient:

    =INDEX($B$47:$D$54; EQUIV($A68; $D$47:$D$54; 1); 3)

    =Si.Erreur(INDEX($B$47:$D$54; EQUIV($A68;$D$47:$D$54;1); 3); "")

    =SI($A68=""; ""; INDEX($B$47:$D$54; EQUIV($A68;$D$47:$D$54;1); 3) )

    selon la forme que tu souhaites pour les cas où ce n'est pas une date valide.

    On peut aussi écrire

    =SI($A68=""; ""; INDEX($D$47:$D$54; EQUIV($A68; $D$47:$D$54)) )

    Avant d'avoir compris ce truc, ce que je faisais était créer une colonne supplémentaire tout à droite (par exemple en colonne H), avec pour formule les valeurs de la colonne B sur la même ligne (en H47: =$B47 ) et utiliser RechercheV(A68; $D$47:$H$54; 5). La formule avec INDEX et EQUIV est à mon avis plus élégante, et évite les problèmes lié à l'existence de la colonne supplémentaire (qui peut se désynchroniser). En contrepartie, les deux zones (dates recherchées et montants trouvés) deviennent indépendantes, c'est différent et il faut s'y habituer, en particulier ne pas oublier de faire deux corrections quand on doit changer les formules.

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire

8 réponses supplémentaires

  1. Anonyme
    2021-07-03T10:29:19+00:00

    Bonjour,

    Un certain nombre de trucs pour t'aider:

    • Une date Excel est un nombre... sauf si la cellule est formattée comme du texte; et plus rien ne fonctionne alors normalement, parce que Excel ne pense plus en terme de date mais en terme de texte; ainsi, le "19 septembre" est suivi du "2 août", parce qu'en français "s[eptembre]" est le dernier mois en ordre alphabétique et "ao[ût]" le premier, et que "2" suit "1[9]"! Bref, cela ne peut pas marcher, il faut absolument que les dates soient des nombres; il y a une fonction DateVal("date écrite comme du texte") qui fait le boulot
    • Par ailleurs (quand ce sont des dates, donc des nombres), le format n'affecte que ce que tu vois à l'affichage, en aucun cas cela n'affecte les calculs d'Excel
    • Les dates actuelles sont dans les 44400 (+1 chaque jour, 36892 le premier jour du XXIe siècle)... donc le 1/11/2018 (43405) est largement supérieur à 1316 (qui correspond au 8 août 1903!)
    • RechercheV(...;VRAI) nécessite une colonne de valeurs triées dans l'ordre, et se positionnera sur la dernière ligne inférieure ou égale à la valeur recherchée...
      mais les nombres (y compris les dates) viennent d'abord, puis les textes (et "" est le premier d'entre eux), et à la fin les valeurs FAUX et VRAI; donc "" ira toujours à la dernière ligne
    • RechercheV(valeur;matrice;colonne;VRAI/FAUX) est équivalent à
      Index(matrice; Equiv(colonne_gauche_de_matrice;valeur;1/0); colonne)
      sauf que la seconde forme est plus souple et plus puissante (je t'invite à lire l'aide pour Equiv() et Index());
      en particulier, on peut ainsi écrire un RechercheV qui récupère une valeur située à gauche de la colonne des dates; quelque chose comme
      Index($B$47:$D$54; Equiv($E$47:$E$54; $A68; 1))
      doit être proche de ce que tu cherches

    Pour la seconde question je dois dire que ce n'est pas clair pour moi. Si j'ai bien compris, tu veux classer les périodes qui sont actuellement dans un tableau, en deux tableaux distincts, sur la base du critère "mois entier" ou "mois partiel" (dont il faudrait affiner la définition, par exemple sous la forme d'une formule qui décide l'un ou l'autre).

    Traditionnellement (avant 2007), on utilisait le filtre avancé (ruban Données, au milieu, l'entonnoir avec un bidule) qui permet pour une table (en colonne avec une ligne d'entête) et une zone de critère (une autre table) de faire une opération d'extraction vers une troisième table (filtrée, avec seulement certaines colonnes, peut-être en éliminant les doublons). Les possibilités sont importantes. L'inconvénient de cet outil, c'est qu'il opère sur une seule feuille, et qu'il ne garde en mémoire qu'une seule opération, ce qui est pénible lorsque tu veux en faire deux comme dans ton cas (une fois vers les mois entiers, l'autre vers les mois partiels). De plus, cet outil (qui existait déjà avec Excel 1, avec la même interface) n'a pas été mis à jour en 2007 avec les tables nouvelle génération, donc il ne bénéficie pas d'une interface utilisateur moderne. Mais si tu ajoutes une colonne qui permet de savoir s'il s'agit d'un mois partiel ou entier, il doit pouvoir faire le job, éventuellement avec une petite macro pour faire l'opération deux fois.

    Bon courage

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2021-07-05T12:18:49+00:00

    Merci pour ta réponse très détaillée mais donc si je comprend bien ce que tu expliques au début, ma formule devrait fonctionner ?

    Ma formule étant =SI(A68="";"";RECHERCHEV(A68;$B$47:$D$54;1;VRAI)) si je suis ta logique il devrait trouver la date inférieure la plus proche de ma valeur en A68 ? (qui en l'occurrence est vide mais ça afficherait un format pareil qu'en A76)

    Le problème étant que peu importe la valeur affichée à gauche, excel veut automatiquement prendre la dernière option possible.

    Ce qui en soit m'étonne beaucoup car plus bas dans le tableau j'utilise une formule identique mais qui doit m'afficher des pourcentage au lieu de montants et elle fonctionne parfaitement:

    Serait-il possible que la présence de texte ("Période /...") entre les deux valeurs du tableau de recherche embête ?

    Je t'enverrais volontiers le fichier pour que tu puisses bidouiller toi même mais je ne vois pas l'option sur ce site...

    si tu peux me donner une formule à rentrer pour voir si cela fonctionne ça me serait d'une grande aide...

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2021-07-02T13:38:28+00:00

    Bonjour,

    Est-ce que tu peux donner un exemple ? Actuellement, A68 est vide.

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire