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 :

Problème sur fonction NB.SI [XL-2013]


Sujet :

Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut Problème sur fonction NB.SI
    Bonjour,

    Dans l'onglet "ERRORS_SYNTHESIS" j'ai mis en cellule D4 une formule qui compte le nombre de fois où le mot "References" est trouvé dans l'onglet "Feuil1" pour la zone AH6:AH1000. J'ai pour cela mis en cellule D4 la formule suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI(Feuil1!AH6:AH1000;ERRORS_SYNTHESIS!$C$4)
    Voici une capture d'écran de l'onglet "ERRORS_SYNTHESIS" :

    Nom : Capture_1.JPG
Affichages : 175
Taille : 74,5 Ko

    Je voudrais que le terme AH6:AH1000 soit récupéré automatiquement de l'onglet "Feuil1". Pour cela j'ai mis une formule en cellule AH2 (onglet "Feuil1") qui génère automatiquement le texte "AH6:AH1000".

    Voici une copie d'écran de l'onglet "Feuil1" lorsque je suis dans la cellule AH2 :

    Nom : Capture_2.JPG
Affichages : 142
Taille : 45,0 Ko

    La formule en cellule AH1 permet de récupérer la colonne sous forme d'une lettre. La formule est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(ADRESSE(1;COLONNE();4);NBCAR(ADRESSE(1;COLONNE();4))-1)
    J'ai essayé de remplacer dans la formule tout en haut "AH6:AH1000" par "Feuil1!AH2 mais cela ne fonctionne pas.

    Des suggestions ?

    Merci par avance.

    Cdlt.
    Jérôme

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pour transformer une adresse textuelle en vraie référence de cellule (ou de zone), il faut utiliser la fonction INDIRECT().
    https://support.office.com/fr-FR/art...1-92b6306fa261

    Autre détail : la fonction CONCATERNER() inutile et n'est conservée dans Excel que pour la compatibilité avec de (très) vieux fichiers.
    Aujourd'hui, on utilise l'opérateur "&".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =AH1&"6"&":"&AH1&"1000"
    Mais il serait bien plus simple pour toi d'utiliser la fonction DECALER() en donnant une zone de référence (par exemple AF6:AF1000) et ne numéro de colonne souhaité dans le décalage de colonne (3è paramètre).
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup Mehnir !!

    Dans la capture d'écran ci-dessous (onglet "ERRORS_SYNTHESIS") j'ai mis en cellule D19 la formule que tu proposes en l'adaptant :

    Nom : Capture_1.JPG
Affichages : 145
Taille : 54,0 Ko

    C'est à partir de là que je bloque. Si je comprends bien je dois utiliser la fonction INDIRECT en cellule D4 mais je sèche ...

    La zone AH6:AH1000 est dans l'onglet "Feuil1".

    Cdlt.
    Jérôme.

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pour que l'adresse soit complète, il faudrait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Feuil1!"&D2&"6"&":"&D2&"1000"
    Tu peux ensuite l'utiliser avec INDIRECT() pour créer une vraie référence.
    Par exemple, pour faire la somme de cette zone :
    Mais, comme je le disais, il serait plus propre d'utiliser la fonction DECALER().
    En remplaçant tes "AG", "AH", "AI", etc. par 1, 2, 3, etc. (donc simplement un numéro des colonnes).
    Pour le même résultat que ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(DECALER(Feuil1!AF6:AF1000;0;Feuil1!AH1))
    Mais je ne comprends pas trop l'intérêt du truc.
    A mon avis, tu t'y prends mal sur le principe. Mais comme je ne sais pas ce qui détermine le choix de ta colonne source, difficile d'en dire plus.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur aéronautique
    Inscrit en
    Août 2017
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur aéronautique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2017
    Messages : 363
    Points : 79
    Points
    79
    Par défaut
    Voici ce que j'ai fait et qui semble fonctionner :

    Formule dans la cellule D2, onglet "ERRORS_SYNTHESIS" :
    Sachant qu'en cellule AH4 de l'onglet "Feuil1" j'ai la formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =GAUCHE(ADRESSE(1;COLONNE();4);NBCAR(ADRESSE(1;COLONNE();4))-1)
    Formule en cellule D20, onglet "ERRORS_SYNTHESIS" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Feuil1!"&D2&"6"&":"&D2&"1000"
    Formule en cellule D4, onglet"ERRORS_SYNTHESIS" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NB.SI(INDIRECT($D$20);C4)
    Capture d'écran de l'onglet "ERRORS_SYNTHESIS" :

    Nom : Capture_1.JPG
Affichages : 181
Taille : 60,5 Ko

    De cette façon je récupère bien en cellule D4 (onglet "ERRORS_SYNTHESIS") le nombre de fois que je trouve le terme "References" (cellule C4) dans la zone AH6:AH1000 de l'onglet Feuil1.

    Merci beaucoup !!

    Cdlt.
    Jérôme.

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

Discussions similaires

  1. [PHP 5.0] Problème sur fonction de calcul horaire
    Par mariemarie75 dans le forum Langage
    Réponses: 1
    Dernier message: 07/07/2011, 21h10
  2. Problème sur fonction récursive simple
    Par zarohn dans le forum Débuter avec Java
    Réponses: 14
    Dernier message: 18/03/2010, 11h41
  3. Problème sur fonction subset
    Par habasque dans le forum R
    Réponses: 2
    Dernier message: 20/05/2009, 22h49
  4. problème sur fonction diffdate
    Par Daniel MOREAU dans le forum Access
    Réponses: 11
    Dernier message: 05/09/2006, 13h47

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