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 rechercher une dernière valeur spécifique dans une colonne.


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Comment rechercher une dernière valeur spécifique dans une colonne.
    Bonjour,
    Dans un fichier excel, sans utiliser de macro ou via une programmation VBA, existe-t-il un moyen de céer une formule automatique pour calculer le nombre de parties jouée depuis la denière partie gagnée. Donc on a 1 tableau, avec les parties jouées (colonneA), une colonne avec les parties gagnées (=1) ou perdues (=0) et par exemple, si on a gagné cette semaine, je calcule le nombre de match joués depuis la dernière fois que l'on a gagné colonne (E). En manuel, je le fais avec un count (de , à) -1 mais comment faire pour détecter automatiquement sur une colonne donnée le dernier "1" indiqué ?
    Merci de voter aide. Voir le fichier en attachement.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    Bonjour

    mais comment faire pour détecter automatiquement sur une colonne donnée le dernier "1" indiqué ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX((ColonneCible=1)*LIGNE(ColonneCible))
    cordialement.
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

  3. #3
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Ecrire en E3 la formule matricielle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(D3=0;"";SI(NB.SI($D$3:D3;1)=1;0;LIGNE()-MAX(LIGNE($D$2:D2)*($D$2:D2=1))))
    à valider par Ctrl + Maj + Entrer.
    et à recopier dans la colonne E
    Cordialement
    Claude

  4. #4
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre réponse. Malgré le fait que je valide par CRTL+MAJ+ENTER, je n'obtiens pas les réponses espérées.
    comment interpréter le résultat du (D22=1)

    Merci.

  5. #5
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Je joins le classeur sur lequel j'ai fait l'essai. La formule utilisée est dans la colonne E et j'ai décalé en F les calculs originalement dans cette colonne.
    J'avais obtenu les résultats attendus.

    Pour l'utilisation de la ligne 2, nous allons regarder la formule pour une ligne n.
    Le numéro d'une ligne donne le nombre de parties + 2 puisque le tableau commence en ligne 3.Le nombre de parties jouées entre les deux dernières parties gagnées,
    la première étant notée à une ligne x, la dernière à une ligne y est donnée par la différence y - x.
    Si, à une ligne n, il y a 1 dans la cellule Cn, il faut donc calculer le nombre de parties jouées depuis la partie gagnée précédente en retranchant à la ligne n la ligne de la partie gagnée précédente.
    Cette ligne est trouvée en utilisant la formule matricielle qu'avait donné NVCfrm :
    { MAX ( (D3: Dn-1 = 1) * LIGNE(D3: Dn-1)) }. En effet, il faut utiliser cette formule jusqu'à la ligne n-1.
    Ce qui donne comme formule générale :
    { =SI(Dn=0;"";SI(NB.SI($D$3: Dn;1)=1;0;LIGNE()-MAX(LIGNE($D$3n-1)*($D$3n-1=1)))) }

    Problème : pour la première cellule E3, n prend la valeur 3 et dans ce cas n-1 prend la valeur 2. La formule devient :
    { =SI(D3=0;"";SI(NB.SI($D$3: D3;1)=1;0;LIGNE()-MAX(LIGNE($D$3: D2)*($D$3: D2=1)))) }
    ce que Excel réécrira automatiquement (même si on rentre exactement la formule supérieure dans la barre de formule) :
    { =SI(D3=0;"";SI(NB.SI($D$3: D3;1)=1;0;LIGNE()-MAX(LIGNE(D2:$D$3)*(D2:$D$3=1)))) }
    Pas génant et on aurait pu laisser ainsi mais j'ai préféré incorporer la ligne 2 dans la plage ce qui ne gène en rien dans la recherche d'un maximum.
    La plage $D$2: D2 est réduite à la cellule D2 contenant le texte "gagné" d'où D2 = 1 est égal à FAUX (ou 0) et (D2 = 1)* LIGNE(D2) = 0.
    Cordialement
    Claude
    Fichiers attachés Fichiers attachés

  6. #6
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par papouclo Voir le message
    Bonjour,
    Je joins le classeur sur lequel j'ai fait l'essai. La formule utilisée est dans la colonne E et j'ai décalé en F les calculs originalement dans cette colonne.
    J'avais obtenu les résultats attendus.

    Pour l'utilisation de la ligne 2, nous allons regarder la formule pour une ligne n.
    Le numéro d'une ligne donne le nombre de parties + 2 puisque le tableau commence en ligne 3.Le nombre de parties jouées entre les deux dernières parties gagnées,
    la première étant notée à une ligne x, la dernière à une ligne y est donnée par la différence y - x.
    Si, à une ligne n, il y a 1 dans la cellule Cn, il faut donc calculer le nombre de parties jouées depuis la partie gagnée précédente en retranchant à la ligne n la ligne de la partie gagnée précédente.
    Cette ligne est trouvée en utilisant la formule matricielle qu'avait donné NVCfrm :
    { MAX ( (D3: Dn-1 = 1) * LIGNE(D3: Dn-1)) }. En effet, il faut utiliser cette formule jusqu'à la ligne n-1.
    Ce qui donne comme formule générale :
    { =SI(Dn=0;"";SI(NB.SI($D$3: Dn;1)=1;0;LIGNE()-MAX(LIGNE($D$3n-1)*($D$3n-1=1)))) }

    Problème : pour la première cellule E3, n prend la valeur 3 et dans ce cas n-1 prend la valeur 2. La formule devient :
    { =SI(D3=0;"";SI(NB.SI($D$3: D3;1)=1;0;LIGNE()-MAX(LIGNE($D$3: D2)*($D$3: D2=1)))) }
    ce que Excel réécrira automatiquement (même si on rentre exactement la formule supérieure dans la barre de formule) :
    { =SI(D3=0;"";SI(NB.SI($D$3: D3;1)=1;0;LIGNE()-MAX(LIGNE(D2:$D$3)*(D2:$D$3=1)))) }
    Pas génant et on aurait pu laisser ainsi mais j'ai préféré incorporer la ligne 2 dans la plage ce qui ne gène en rien dans la recherche d'un maximum.
    La plage $D$2: D2 est réduite à la cellule D2 contenant le texte "gagné" d'où D2 = 1 est égal à FAUX (ou 0) et (D2 = 1)* LIGNE(D2) = 0.
    Cordialement
    Claude
    Super Claude ... Effectivement ça fonctionne très bien !!! je n'avais pas vu une ligne cachée .. et j'avais recopier la formule dans la mauvaise cellule. JE vous remercie de votre aide.
    Autre question : est-il possible d'obtenir le même résultat mais en calculant le nombre de jour entre 2 parties gagnée à partir de la date ???

  7. #7
    Candidat au Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par NVCfrm Voir le message
    Bonjour



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MAX((ColonneCible=1)*LIGNE(ColonneCible))
    cordialement.
    Merci pour votre précieuse réponse !!!

  8. #8
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il ne s'agit plus de calculer, pour une partie gagnée, le nombre de parties jouées depuis la partie précédemment gagnée mais de calculer la durée en jours entre ces deux parties.
    On appliquera la fonction MAX affectée non plus au calcul de la ligne mais d'une date dans la plage B3 : B22 mais il n'est plus question d'utiliser la ligne 2 sous peine de signal d'erreur
    sauf pour la formule de la ligne 3, ligne pour laquelle le calcul ne s'effectue pas avec les deux SI emboîtés dans la formule . (J'ai peur de ne pas être très clair).
    Plaçons-nous par exemple en ligne 12 , dans une colonne réservée au calcul de la durée. Une formule possible est la formule matricielle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(D12=0;"";SI(NB.SI($D$3: D12;1)=1;0;B12-MAX(($B$3:B11)*($D$3: D11=1))))
    à valider par Ctrl + Maj + Enter et à recopier sur toute la plage de la colonne de la ligne 3 à la ligne 22.
    Cordialement
    Claude

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Recherche d'une valeur présent dans une table mais pas dans une autre
    Par bossLINDROS dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2008, 15h12
  3. Réponses: 5
    Dernier message: 22/05/2008, 16h24
  4. recherche de la valeur maximum dans une série de cellules
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/04/2008, 08h33
  5. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40

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