[Excel] Recherche avec 2 critères - encore!

SoniaB -  
Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai essayé toutes les réponses à cette questions sur plusieurs forums, et j'ai toujours des problèmes... Peut-être pourrez-vous m'aider?

J'ai 2 feuilles.
Sur l'une (Suivi Formation), Nom (en A), Prénom (en B), et je veux que le matricule se mette automatiquement en C.
Sur l'autre (Codes SAP), Nom, Prénom, Matricule, sur 110 lignes. Matricule est sur la colonne C.
Simple!

Ma formule
=SOMMEPROD(('Codes SAP'!$A$2:$A$110='Suivi Formation'!A4)*('Codes SAP'!$B$2:$B$110='Suivi Formation'!B4)*('Codes SAP'!$C$2:$C$110))
en validation matricielle marche bien sur un fichier excel de démonstration, avec simplement quelques lignes et ces 2 feuilles.

Mais sur le fichier sur lequel je dois travailler, qui a des centaines de lignes et une dizaine de feuilles, ça ne marche pas - le résultat est #VALEUR!
j'ai bien vérifier l'orthographe des noms, ce n'est pas ça.

Qu'est-ce qui m'échappe?...

Merci d'avance!

2 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    Si la formule affiche valeur, c'est sans doute qu'il y a dans le champ
    'Codes SAP'!$C$2:$C$110
    des formats qui ne sont pas numériques

    ceci est visible si en sélectionnant cette colonne, vous choisissez le format de l'alignement horizontal "standard"
    les num viennent à droite et les alpha à gauche

    si vous n'avez pas de "parasite" dans les info de cette colonne (caractères texte , ponctuation,etc;;), vous pouvez essayez ceci
    copier une cellule vide
    sélectionnez le champ
    collage spécial / Addition.
    qui devrait transformer en num les matricules.

    Mais la formule SOMMEPROD(qui, en aparté, n'a pas besoin d'entrée en matricielle)n'éditera que la somme de ce qu'elle trouve et donc uniquement du numérique.

    revenez si ça ne fonctionne pas, il faudra passer par autre chose.

    crdlmnt

    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Pour faire suite au message précédent
      au cas où vos matricules ne soient pas numériques, essayez ceci:

      =INDEX('Codes SAP'!$C$2:$C$110;EQUIV('Suivi Formation'!A4&'Suivi Formation'!B4;'Codes SAP'!$A$2:$A$110&'Codes SAP'!$B$2:$B$110;0);1)

      celle là par contre est obligatoirement matricielle.
      et bien sur ne marche que si les textes sont strictement conformes

      Bonne chance
      0
    2. scotland_frenchie
       
      Merci Vaucluse! :-)
      J'avais besoin en fait que mon matricule ne soit pas totalement numérique, car le numérique enlève le 1er '0', qu'il faut mettre en lettre 'O'.
      J'ai donc utilisé INDEX EQUIV, que j'avais essayé avant mais votre formule doit être un peu différente de celle que j'avais essayé, parce qu'elle marche!

      Je l'ai aussi utilisé pour une autre colonne dans la feuille de référence, et ça marche.

      Seule chose que je ne comprends pas, mais ce n'est pas trop grave - quand il n'y a rien dans la colonne de référence, parfois il retourne #N/A, et parfois '0'. Bizarre, mais pas trop grave.

      Merci beaucoup de votre aide!
      0
    3. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Bonjour

      en principe, la formule renvoi #N/A quand la valeur initiale à chercher n'est pas trouvée et 0 quand la valeur à éditer n'existe pas

      pour éviter les #N/A, vous pouvez écrire::
      =SI(ESTERREUR(votre formule);"";votre formule))
      ce n'est peut être pas la peine d'éviter les 0 qui au contraire vous informe que le code existe, mais n'a pas de matricule.*Mais si vous ne pouvez pas les voir:
      Outil / Option / Affichage et décochez:
      afficher les valeurs 0
      idem sur excel à partir de 2007 mais: cliquer sur logo moicrosoft en haut à gauche et >Options Excel > Options avancées
      crdlmnt
      0
  2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Juste au passage, si les feuilles ont des centaines de lignes il faut pensé à adapter les plages ['Codes SAP'!$C$2:$C$110.....] c'est à dire remplacer le 110 par 3241 si vous avez 3241 lignes...!
    0
    1. scotland_frenchie
       
      Oui merci Le Pingou, je le savais mais c'est un bon rappel :-)
      0
    2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      Merci pour votre petit mot.
      Juste un petit détail, la solution de Vaucluse est très bonne (amicales salutations), personnellement je préfère remplacer le zéro par un petit tiret (je trouve que c'est plus parlant qu'une cellule vide). Via Format de cellule, Personnalisée et dans Type : #'##0;;" - "
      0