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


Sujet :

Excel

  1. #1
    Membre régulier
    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" :



    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 :



    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
    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
    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 :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =D2&"6"&":"&D2&"1000"




    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
    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 :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =SOMME(INDIRECT(D19))


    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
    Voici ce que j'ai fait et qui semble fonctionner :

    Formule dans la cellule D2, onglet "ERRORS_SYNTHESIS" :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =Feuil1!AH4


    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" :



    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.

###raw>template_hook.ano_emploi###