Calc - croiser des données

Jo. -  
 Jo. -
Salut,

La situation est un peu complexe à expliquer.

Schématiquement, j'ai une feuille qui se présente sous cette forme :

Colonne 1 : Nom des personnes
Colonne 2 : Age
Colonne 3 : Sexe

Sur une seconde feuille, quand j'écris le nom des personnes en colonne 1', je voudrais que le sexe apparaisse automatiquement en colonne 2'... mais je ne sais pas comment faire.

Merci d'avance pour vos réponses,
Jo.

10 réponses

  1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour
    exemple à adapter
    En feuille 1 base de données avec en A liste de noms, en B age et en C sexe
    de ligne 2 à ligne 200

    1°) nommer le champ des noms pour pouvoir reporter le nom par un menu déroulant en édition, ceci évite les fautes de frappe dans les noms.

    sélectionner le champ A2:A200 des noms
    Données/ Définir une plage / entrer le nom choisi, exemple: LISTE

    2°)En feuille 2 édition
    à partir de ligne 2 en A nom /en B age /en C sexe
    sélectionner le champ A sur la hauteur utile
    Données / Validité / Plage de cellule et entrer =LISTE

    en B2 à tirer sur la hauteur utile:

    =SI($A2="";"";RECHERCHEV($A2;feuille2.$A$2:$B$200;2;0))

    pour avoir le sexe
    attention à la position des $ qui bloquent les références
    tirer la formule vers la droit en colonne C
    remplacer ;2;0) par ;3;0) pour avoir le sexe
    Sélectionner B2:C2 et tirer sur la hauteur utile

    note de la ,même façon que la liste en A vous pouvez nommer le champ de feuille 1 de A2 à C200 et ainsi remplacer l'adresse feuille2.$A$2:$B$200 par le nom du champ, c'est plus clair.

    Bonne chance
    crdlmnt
    0
  2. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

    ma réponse

    =SI(ESTERREUR(RECHERCHEV(A11;Feuil1!$A$11:$C$30;3;FAUX));"";RECHERCHEV(A11;Feuil1!$A$11:$C$30;3;FAUX))

    ou

    A11 = le nom cherché
    A11 : C30 le champ avec le nom colonne A l'age colonne B et la colonne C le sexe
    dans la formule ci-dessus on contrôle d'abord que le nom existe pour éviter les message d'erreurs
    0
    1. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      Votre réponse ne s'adresse pas à Calc Philou, où le nom des feuilles n'est pas indiqué de la même façon
      0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. Jo.
     
    Re-Salut,

    J'ai adopté la solution de Morgothal. Ça fonctionne bien, sauf dans un cas.

    Schématiquement :

    FEUILLE 1 :
    Colonne A : Sexe
    Colonne B : Age
    Colonne C : Nom

    Sur une seconde feuille, lorsque j'écris le nom des personnes en colonne 1', la formule de Morgothal pour obtenir le sexe en colonne 2' ne fonctionne plus. Y a-t-il une solution ?
    Merci
    Jo
    0
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Bonjour,

      oui c'est normal que cela ne fonctionne pas. Dans le premier cas le premier critère (Nom) se situe avant l'âge et le sexe dans votre feuille1. La rechercheV se base sur la 1ere colonne d'une matrice.

      En revanche, dans le cas que vous indiquez maintenant, si vous cherchez le sexe depuis le nom, la rechercheV ne fonctionne plus car le nom n'est plus la 1ere colonne.

      Dans ce cas, il faut combiner les formules INDEX() et EQUIV().

      Cdt.
      0
  5. Jo.
     
    D'accord. Merci. C'est bien ce que je pensais.
    A quoi ressemble la formule avec INDEX et EQUIV ?
    Cordialement
    0
  6. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Re
    =INDEX(Champ des données;EQUIV( valeur cherchée;Colonne de recherche;0);N° de colonne dans le champ de la valeur à ressortir)
    crdlmnt
    ne sommes nous pas seuls à comprendre ce que l'on explique?
    0
  7. Jo.
     
    Merci.

    Je n'arrive à rien, malheureusement. Ca dépasse mes compétences.
    0
  8. Morgothal Messages postés 1350 Statut Membre 184
     
    Ça donne ceci :
    =INDEX(Feuil1!A2:C4;EQUIV(A2;Feuil1!A2:A4;0);3)
    Le "3" de fin correspond à la 3ème colonne du tableau (celle ou il y a la valeur cherchée dans la Feuil1)
    0