XL 2019 Recherche V

Defre_77

XLDnaute Nouveau
Bonsoir à tous,

J'ai un petit soucis avec ma RechercheV (soumise à condition dans la colonne C24) pour le loyer. Mon Tableau possède 3 colonnes.
Dans la 1ère, normalement, ce sont des valeurs qui normalement vont de 0 à 1833 ; puis de 1833,01 à 2199,59 ; puis de 2199,60 à 2566,19 etc...

Le problème est que je n'arrive pas à trouver la bonne valeur.
Dans mon exemple, le salaire de Référence est de 1834€, mais la valeur affichée est 40,40 (au lieu de 56,50).

Quelqu'un peu me dire comment résoudre ce problème ?
D'avance merci pour votre aide
 

Pièces jointes

  • Calculateur_Avantage_Nature_V1.xlsx
    12.8 KB · Affichages: 6

RyuAutodidacte

XLDnaute Impliqué
Bonjoir,

si tu as la fonction RechercheX dans ton excel, c'est celle qu'il te faut
1693262248550.png


si tu n'as pas la fonction alors le faire comme cela, les formules parlent d'elles même :
1693263556034.png


VB:
=MIN(SI(G2<=Tab_Loyers[Salaire Mensuel Brut];Tab_Loyers[Salaire Mensuel Brut]))
=RECHERCHEV(MIN(SI(G2<=Tab_Loyers[Salaire Mensuel Brut];Tab_Loyers[Salaire Mensuel Brut]));Tab_Loyers;3)
 
Dernière édition:

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@RyuAutodidacte

=MIN(SI(G2<=Tab_Loyers[Salaire Mensuel Brut];Tab_Loyers[Salaire Mensuel Brut])) =RECHERCHEV(MIN(SI(G2<=Tab_Loyers[Salaire Mensuel Brut];Tab_Loyers[Salaire Mensuel Brut]));Tab_Loyers;3)

Le demandeur ayant Excel 2019 je crois qu'il doit les valider
1693265934379.png


Pour que tes formules fonctionnent chez moi sur excel 2010 il faut :

Appuyer sur les touches: Ctrl+Maj+entrée pour valider car c'est des formules matricielle

1693266337813.png


Sinon tu auras
1693266292217.png


;)
 

ALS35

XLDnaute Impliqué
Bonjour à tous,
@RyuAutodidacte
Les formules proposées sont erronées pour les salaires supérieurs à 5499
@Defre_77
Tes formules sont correctes si tu modifies ton tableau loyer en mettant les bornes "à partir de" au lieu de "jusqu"à" et en supprimant une ligne comme dans fichier joint. Si j'ai bien compris.
Cordialement
 

Pièces jointes

  • Calculateur_Avantage_Nature_V1 modif.xlsx
    13.9 KB · Affichages: 4

RyuAutodidacte

XLDnaute Impliqué
Bonjour à tous

@Phil69970
Merci de le préciser étant sur Office 365 Mac, je n'ai pas besoin de le faire, c'est pris en compte automatiquement.
D'ailleurs je me demande si ce n'est plus nécessaire pour toute les formules matricielles de faire Ctrl+Maj+entrée sur Office 365 ?

@Defre_77
La formule complète :
VB:
=RECHERCHEV(MIN(SI($G$2<=Tab_Loyers[Salaire Mensuel Brut];Tab_Loyers[Salaire Mensuel Brut]));Tab_Loyers;SI($C$23=1;2;SI($C$23>1;3;"")))

Edit : @Defre_77 je viens d'éditer mon message et je viens juste de voir le tiens après
 

RyuAutodidacte

XLDnaute Impliqué
@Defre_77 la formule complète va être un peu plus longue (prend en compte C23 =1 ou C23 >1) :
VB:
=RECHERCHEV(MAX(MIN(SI(Tab_Loyers[Salaire Mensuel Brut]>=$G$2;Tab_Loyers[Salaire Mensuel Brut]));MAX(SI(Tab_Loyers[Salaire Mensuel Brut]<=$G$2;Tab_Loyers[Salaire Mensuel Brut])));Tab_Loyers;SI(C23=1;2;SI(C23>1;3;"")))
Là ca devrait aller
 

RyuAutodidacte

XLDnaute Impliqué
@Defre_77
Je viens de penser à une solution plus simple et abordable en utilisation avec INDEX et EQUIV (remplace RECHERCHEV)

Il faut mettre le Tableau dans l'ordre décroissant sur la colonne Salaire Mensuel Brut :

1693308730072.png


Dans la Cellule C24 mettre la formule :
VB:
=SIERREUR(INDEX(Tab_Loyers[[1 pièce principale]:[> 1 pièce principale]]; EQUIV(SI($G$2>5499;5499;$G$2); Tab_Loyers[Salaire Mensuel Brut];-1); SI($C$23=1;1;SI($C$23>1;2;"")));"")

On INDEX sur les colonnes à rechercher :
=INDEX(Tab_Loyers[[1 pièce principale]:[> 1 pièce principale]];LIGNE;COLONNE)

Pour trouver la LIGNE correspondante on utilise EQUIV sur la colonne de Recherche (Salaire Mensuel Brut):
=EQUIV(SI($G$2>5499;5499;$G$2); Tab_Loyers[Salaire Mensuel Brut];-1)
  • pour éviter une erreur sur le chiffre à rechercher dans EQUIV, utilisation d'une condition :
    =SI($G$2>5499;5499;$G$2) dans le cas où on dépasse la valeur la plus haute => 5499
    sinon on renvoie $G$2
  • -1 pour rechercher la valeur égale ou au-dessus

Pour trouver la COLONNE une simple condition SI (rappel :dans INDEX sélection des 2 colonnes indexées : Tab_Loyers[[1 pièce principale]:[> 1 pièce principale]], donc on aura 1 ou 2 sur le choix de colonne)
=SI($C$23=1;1;SI($C$23>1;2;""))

Si dans la Cellule C23 on a rien au autre qui produit une erreur, on en englobe le tout avec la formule SIERREUR(valeur;valeur_si_erreur)
=SIERREUR(MaFormule_INDEX_EQUIV ; Renvoie vide "" si erreur)
 

TooFatBoy

XLDnaute Barbatruc
Le tableau tel qu'il est d'origine veut dire ceci (voir colonne jaune) :
Tableau.png


Donc, comme déjà dit en #2, on voit bien que ce tableau est faux : si les résultats doivent être identiques de 0 à 1832,99 et de 1833 à 2199,58 alors pourquoi créer deux lignes dans le tableau ?

La question est donc de savoir quel résultat est attendu pour un SMB compris entre 0 et 1832,99 pour ensuite corriger le tableau.
 
Dernière édition:

RyuAutodidacte

XLDnaute Impliqué
Bonjour à tous,
@TooFatBoy
Entièrement d'accord, c'est pour ça que dans le fichier du post #6, j'ai proposé ce tableau, qui ne change pas les formules initiales

Regarde la pièce jointe 1177418
Cordialement
Re @Defre_77
Oui avec ceci la formule change (Tjs avec INDEX EQUIV) :
1693320828136.png

VB:
=SIERREUR(INDEX(Tab_Loyers[[1 pièce principale]:[> 1 pièce principale]]; EQUIV($G$2; Tab_Loyers[Salaire Mensuel Brut];1); SI($C$23=1;1;SI($C$23>1;2;"")));"")
 
Dernière édition:

Statistiques des forums

Discussions
315 100
Messages
2 116 214
Membres
112 689
dernier inscrit
florianbzh