Calc - croiser des données

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. Contributeur
      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
      1. Contributeur
        Votre réponse ne s'adresse pas à Calc Philou, où le nom des feuilles n'est pas indiqué de la même façon
    2. 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
      1. Contributeur
        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.
    3. D'accord. Merci. C'est bien ce que je pensais.
      A quoi ressemble la formule avec INDEX et EQUIV ?
      Cordialement
      1. Contributeur
        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?
        1. Merci.

          Je n'arrive à rien, malheureusement. Ca dépasse mes compétences.
          1. Ç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)