IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Comment utiliser RechercheV en tant que matrice ? [XL-2013]


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 84
    Points : 55
    Points
    55
    Par défaut Comment utiliser RechercheV en tant que matrice ?
    Bonjour à tous,

    Je n'arrive pas à faire fonctionner la formule suivante.
    ma logique ou ma syntaxe n'est peut-être pas bonne ou peut-être fonctionne-t-elle mais toujours est-il qu'elle ne me renvoie pas ce que j'espère

    {=SOMME(SI(RECHERCHEV(JOURSEM($A$1:$A$389);D$1:E$7;2)<>"";1))}

    Je souhaiterais que cette formule me retourne le nombre de jours qui dans la plage $A$1:$A$389, correspondent au critère inscrit dans la plage D$1:E$7. à savoir, tous les jours marqués "Abs" en D$1:E$7.
    Je me doute bien qu'on peux faire bien plus simple pour le cas présent, mais si je souhaite faire fonctionner cette simple recherche c'est que cette formule doit être ajouter en tant qu'argument à une autre formule matricielle.

    Avez vous une idée pour la faire fonctionner, ou est-ce tout bonnement impossible d'utiliser RechercheV intégré dans une formule matricielle ?

    Merci de votre aide !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Je n'ai pas ouvert votre annexe, mais j'étais attiré par la formulation "RECHERCHEV(JOURSEM($A$1:$A$389);D$1:E$7;2)". En principe on recherche une valeur (qui peut être du texte) dans une plage allant de la 1ère colonne à la dernière (A:E dans votre exemple). Ici, vous cherchez Joursem sur 390 lignes alors qu'il aurait fallu chercher, par ex, Joursem(A1;A1:E7;4;VRAI) ou bien Joursem(A1;A1:E7;4;FAUX); l'argument VRAI/FAUX est probablement nécessaire dans votre cas. Si la 1ère formule donne un résultat, il suffira de la copier sur les 389 lignes restantes.
    En outre, le pas utilisé est certainement à changer; il est au moins égal à 4 (indice de la colonne D); Il doit indiquer la colonne où se trouve la valeur cherchée.
    J'espère néanmoins, que je n'ai pas mal interprété votre question.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    Je pense que dans ton explication, tu voulais surement m'indiquer l'utilisation de la fonction RechercheV et non pas Joursem comme tu l'as noté.

    Quoiqu'il en soit je te remercie pour ton aide.

    Mon problème étant que je souhaiterais que le paramètre "valeur recherchée" passé en argument à la fonction RechercheV soit issue du résultat de la fonction Joursem car je veux ajouter cette condition dans la formule plus complète suivante qui fonctionne et qui devra me donner un résultat différent suivant si le jour de la semaine est un jour d'absence ou pas.


    Formule qui fonctionne :

    {=SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(JOURSEM($E12:$E389;2)<6;SI(Z12:Z389="AM";1;SI(Z12:Z389="SS";1;SI(Z12:Z389="CEF";1))))))))+SI(SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(JOURSEM($E12:$E389;2)<6;SI(Z12:Z389="CP";1))))))>20;20;SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(Z12:Z389="CP";1))))))}


    Formule qui ne fonctionne pas et que je cherche à faire fonctionner

    {=SOMME(SI(ET($E12:$E389<>0;RECHERCHEV(JOURSEM($E12:$E389);G$3:H$7;1)="");SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(JOURSEM($E12:$E389;2)<6;SI(Z12:Z389="AM";1;SI(Z12:Z389="SS";1;SI(Z12:Z389="CEF";1))))))))+SI(SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(JOURSEM($E12:$E389;2)<6;SI(Z12:Z389="CP";1))))))>20;20;SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(Z12:Z389="CP";1))))))}

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    C'est pour cela que j'ai écrit "J'espère néanmoins, que je n'ai pas mal interprété votre question."

    Voici ce que je fais en général dans ces cas: je décortique ma formule kilométrique, en mettant chaque petit bout dans une colonne. De cette façon je peux repérer le bout qui ne fonctionne pas!; l'ayant trouvé et corrigé, je réécris ma formule kilométrique et supprime les colonnes inutiles.

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut,
    pourquoi dans y-a-t-il 6?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... SI(JOURSEM($E12:$E389;2)<6 ...
    6=Sa ou 6=Ve?

    Votre tableau est un tableau de suivi de différents types d'abs ?
    Donc du 1er jour calendaire (01/01/N) au dernier jour calendaire (31/12/N) d'une année, vous avez besoin de comptabiliser par jour les types d'absence ?

    Citation Envoyé par bartez63 Voir le message
    Formule qui fonctionne :
    {=SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(JOURSEM($E12:$E389;2)<6;SI(Z12:Z389="AM";1;SI(Z12:Z389="SS";1;SI(Z12:Z389="CEF";1))))))))+SI(SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(JOURSEM($E12:$E389;2)<6;SI(Z12:Z389="CP";1))))))>20;20;SOMME(SI($E12:$E389<>0;SI($E12:$E389>Y$1;SI($E12:$E389<AUJOURDHUI()+1;SI(Z12:Z389="CP";1))))))}
    La colonne E contient les dates calendaires et la colonne Z contient le type d'absence. Utilisez donc la fonction NB.Si.ENS() et vous trouverez 112
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    Le bout qui ne fonctionne pas est bien isolé.
    C'est celui-ci :

    RECHERCHEV(JOURSEM($E12:$E389);G$3:H$7;1)="")

    et c'est pourquoi, dans ma demande initiale, j'ai fait un exemple simple qui reprend le principe ci-dessus.

    {=SOMME(SI(RECHERCHEV(JOURSEM($A$1:$A$389);D$1:E$7;2)<>"";1))}

    Chez moi son résultat est : 1
    alors que je m'attends à avoir en gros 110 comme résultat soit 55 semaines x 2 jours non vide.

    Je pense que RechercheV ne doit pas pouvoir être mis en formule matricielle sous cette forme car cette somme suivante fonctionne très bien.
    {=SOMME(SI(JOURSEM($A$1:$A$389);2)<6;1)}
    mais dès lors que je veux ajouter RechercheV la formule considère JOURSEM($A$1:$A$389) comme si c'était JOURSEM($A$1)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Utilisez donc la fonction NB.Si.ENS() et vous trouverez 112
    Franchement un grand Merci pour l'info....
    Je ne connaissait pas la fonction NB.Si.ENS.

    Je vais essayé de l'utiliser pour résoudre mon problème et je repasserai par le forum pour vous tenir informé.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    Bon ben, comment dire ?
    je suis pas doué, ça c'est sûr et je le savais déjà ,mais j'arrive à rien avec NB.Si.ENS GRrrrr !

    Comment remplacer ma formule matricielle avec NB.Si.ENS ???

    Pour compter mes absences je teste :
    si c'est un jour ouvré et normalement travaillé donc pas un week-end et pas en sans solde (temps partiel),
    si le jours testé est antérieur à ma date d'embauche,
    s'il est postérieur à la date du jour (aujourd'hui)
    ...etc.

    avec une formule matricielle j'arrivais (à peu près) à tester tout sauf le test du temps partiel qu'il me fallait rajouter, mais avec NB.Si.ENS ne n'arrive pas à faire les tests en cascade

    un petit exemple serait parfait

  9. #9
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Au cas où NB.SI.ENS ne donne rien, essayez de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RECHERCHEV(JOURSEM($E12:$E389);G$3:H$7;1)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RECHERCHEV(JOURSEM($E12:$E389);G$3:H$7;1;FAUX)

  10. #10
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Citation Envoyé par bartez63 Voir le message
    Comment remplacer ma formule matricielle avec NB.Si.ENS ??? un petit exemple serait parfait
    Salut, avec adaptation de 2 colonnes
    Fichiers attachés Fichiers attachés
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 84
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Salut, avec adaptation de 2 colonnes
    Merci, je regarderai ça dans la semaine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/01/2016, 22h10
  2. manipuler les images .bmp(en tant que matrices)
    Par amoeva dans le forum C++Builder
    Réponses: 8
    Dernier message: 21/04/2007, 00h46
  3. Réponses: 2
    Dernier message: 24/08/2006, 17h48
  4. [Excel] Comment utiliser la fonction RECHERCHEV
    Par forsay1 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 03/02/2006, 11h43
  5. Comment exécuter "en tant que" (RunAs) ?
    Par PierreT dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 21/09/2005, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo