Erreur sur code postal

Bonjour,
je ne trouve pas mon erreur
sur une formule qui me s'amble Corrette avec recherche
merci de regarder.
https://www.cjoint.com/c/KFok2NAEhHf

Configuration: Windows / Chrome 91.0.4472.101

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour eugene
    pour info
    la fonction RECHERCHEV fonctionne même sur une liste non classée si on la termine par le code ;FAUX) ou ;0) ou même simplement ;)
    s'il y a plusieurs code identique , la formule en ressortira un, le premier uniquement. Pour en traiter plusieurs il faut passer par une matricielle, comme par exemple pour le modèle en cause, en F3 :

    =SIERREUR(INDEX(liste!$I$1:$I$39000;PETITE.VALEUR(SI(liste!$G$1:$G$39000=$E$3;LIGNE(liste!$A1:G$39000));LIGNE(A1)));"")

    formule à entrer avec la touche enter en maintenant les touches ctrl et shift enfoncées.
    Elle doit s'afficher automatiquement entre accolades dans la barre de formule

    à tirer sur la hauteur utile
    Testable avec le code 06420 qui renvoie 12 villes

    crdlmnt
    1. Certes, le classement numérique n'est pas absolument indispensable, mais le tableau serait plus rationnel.
      Cela dit, si notre ami martini avait des difficultés avec la formule matricielle, peut-être pourrait-il essayer d'utiliser les filtres automatiques...
  2. Contributeur
    Bonjour
    deux points:
    • votre formule va chercher la neuvième colonne d'un tableau qui n'en a que trois, écrivez:

    =SI(E3="";"";RECHERCHEV(E3;liste!$G$1:$I$38469;3;FAUX))
    • vos formats de cellules ne sont pas identiques: textes dans la feuille liste et code postal dans la recherche, les valeurs ne sont pas les mêmes.

    formatez E3 de feuille 1 en texte et entrez bien le code avec le 0 s'il y en a un en entête

    et ça devrait aller (chez moi ça renvoi Grasse)

    1. Bonjour,
      il faudrait aussi que les codes postaux soient classés par ordre numérique.
      Par ailleurs le même code désigne plusieurs villes, et dans ces conditions la fonction RechercheV() ne fonctionne pas.
      Cordialement.
  3. Contributeur
    Bonjour à martini, Vaucluse, eugène.

    Je complète un peu les réponses, explications et formules de mes amis Vaucluse et Eugène en disant à martini :
    • dans la fonction RECHERCHEV, le N° de colonne à inscrire n'est pas celui de la feuille Excel (en effet I c'est bien la colonne 9), mais celui de la colonne du tableau de recherche (et c'est la colonne 3 de la plage G:I) ;
    • tu as cru bien faire en appliquant à E3 le format Spécial / Code postal pour forcer l'affichage du zéro initial ; alors il fallait aussi le faire pour la colonne G de la feuille [liste] ; tu dois donc soit faire comme indiqué par Vaucluse en choisissant le format Texte, soit en plaçant une apostrophe lorsque le code commence par zéro
       '06130
      ;
    • de même que tu as défini des plages nommées Postal et Ville, tu aurais pu définir la plage Code pour faire référence à $G:$I et écrire en F3 la formule =SI(E3="";"";RECHERCHEV(E3;Code;3;FAUX)) ... je sais que ce dernier conseil est superflu ici, puisque tu dois abandonner RECHERCHEV et passer à une formule matricielle.

    --------------------------------------------------------
    Vaucluse, je m'en vais plagier ta formule matricielle pour rédiger une petite fiche technique (pédagogique), car c'est ici un bon exemple, et qu'on en voit immédiatement l'utilité. Merci d'avance !

    Cordialement.
    1. Salutations à tous,

      J'ajoute mon petit grain de sel, pour faire joli les bordure de la colonne F (formule matricielle descendue jusqu'à F30) ne se forment qu'en présence d'une ville dans la cellule concernée

      https://www.cjoint.com/c/KFopc6UCzLV

      Cordialement
      1. Bonjour,
        Une autre approche avec une petite macro. Les colonnes D à H et L à P pourraient être utilisées pour le traitement d'autres données, chef-lieux, sous-préfectures, cantons etc.
        Cordialement
        https://cjoint.com/c/KFrkbArgknG
        (après quelques problèmes de fichiers...)
        1. @martini
          Bonjour,
          Avez vous vu les réponses ci-dessus ?