Excel : si() v. recherche() v. index(equiv())

Problematique:

Dans cette entreprise, les travailleurs sont classés en catégorie qui influe aussi sur le salaire horaire (s.h.) et la prime.

Alors, étant agent payeur au service de RH, vous devez préparer un fichier de paie qui sera utilisé comme modèle.

Ici le PS (Personnel de Saisie) ne doit entrer que le nom des travailleurs, leur catégorie et le nombre d’heures prestées. Le resté doit se calculer de soi.

C’est pourquoi il nous faut une formule dans D9 et F9 qui:

  • Compare la valeur de categorie se trouvant dans B9 avec celles se trouvant dans la plage A3 à A6.
  • Une fois la correspondance trouvée, la formule récupère la valeur de s.h. ou de prime de la ligne de correspondance et l’insert dans D9 ou F9 selon les cas.
  • Comme cette formule sera utilisé pour copier aux autres, les références fixes seront rendues absolues.

Nous avons trois manières de résoudre cette situation. On ne se limite pas seulement à trois avec un peu de genie!

  1. Fonction si()
  2. On passe en revue chaque condition de catégorie:

    • Si(B9=$A$3;$B$3;autre condition)
    • Si(B9=$A$4;$B$4;autre condition)
    • Si(B9=$A$5;$B$5;$B$6)

    En somme:

    =si(B9=$A$3;$B$3;si(B9=$A$4;$B$4;si(B9=$A$5;$B$5;$B$6)))

    Constatez qu’on n’a pas voulu verifier la condition dans A6 car on la considère comme condition par défaut.

  3. Fonction recherche():
  4. La fonction recherche () a deux variations, variation à 2 paramètres et variation à 3 paramètres.

    • Recherche(valeur à chercher;vecteur où on doit chercher et où on soutire la valeur): valeur à chercher B9; vecteur $A$3:$B$6 pour s.h. et $A$3:$C$6 pour prime. Ainsi on aura pour s.h.: =recherche(B9;$A$3:$B$6)
    • Recherche(valeur à chercher;vecteur où on doit chercher;vecteur où on doit soutirer la valeur). Valeur à chercher B9; vecteur où chercher $A$3:$A$6; vecteur où on soutire $B$3:$B$6 pour s.h. et $C$3:$C$6 pour prime. Ainsi on aura pour s.h.: =recherche(B9;$A$3:$A$6;$B$3:$B$6)
  5. Combinaison index(equiv())
    • On commence par comprendre la fonction equiv(). Equiv(valeur à chercher; vecteur où chercher). Cette fonction retourne le numéro de la première ligne où la correspondance est trouvée. Ce numéro n’est pas par rapport à la feuille entière mais tout simplement par rapport au vecteur considéré. Ainsi on aura: equiv(B9;$A$3:$A$6)
    • Index() a trois paramètres: vecteur donné, pour s.h. $A$3:$B$6 et pour prime $A$3:$C$6; le numéro de la ligne concernée qui nous sera donné par equiv(); le numéro de la colonne où on soutire la valeur par rapport au vecteur: 2 pour s.h. et 3 pour prime.
    • Alors la formule complète pour s.h. sera : =index($A$3:$B$6;equiv(B9;$A$3:$A$6);2)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s