Excel: fonction si + chaine de caractère
Résolu
elcaprio
-
Elcaprio -
Elcaprio -
Bonjour,
J'ai une situation assez compliqué, je vais essayer de faire au plus simple.
Mon problème ce situe sur 2 feuilles distincts.
Sur la feuille 2 j'ai une colonne "nom client" et une colone "total ttc"
Sur la feuille 1 j'ai une colonne "total en nombre" et "total en valeur"
Mon but est de connaitre le nombre d'entrée pour un client donné ainsi que la valeurs total de ses achats, sachant qu'il a plusieurs magasins.
ex:
J'ai: 150 lignes pour mon client ABCDEF Nante(elles ne ce suivent pas forcement)
150 ligne pour ABCDEFRouen
Je veut que ma colonne nombre affiche 300 et que ma colonne valeur affiche le total ttc pour ce client.
j'espère être suffisement claire, n'hésitez pas a demander des précisions.
Merci de vos réponses.
J'ai une situation assez compliqué, je vais essayer de faire au plus simple.
Mon problème ce situe sur 2 feuilles distincts.
Sur la feuille 2 j'ai une colonne "nom client" et une colone "total ttc"
Sur la feuille 1 j'ai une colonne "total en nombre" et "total en valeur"
Mon but est de connaitre le nombre d'entrée pour un client donné ainsi que la valeurs total de ses achats, sachant qu'il a plusieurs magasins.
ex:
J'ai: 150 lignes pour mon client ABCDEF Nante(elles ne ce suivent pas forcement)
150 ligne pour ABCDEFRouen
Je veut que ma colonne nombre affiche 300 et que ma colonne valeur affiche le total ttc pour ce client.
j'espère être suffisement claire, n'hésitez pas a demander des précisions.
Merci de vos réponses.
A voir également:
- Excel: fonction si + chaine de caractère
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
4 réponses
Bonjour
peut être:
pour le nombre
=NB.SI(Liste client;"*ABCDEF*")
et pour le cumul montant
=SOMME.SI(Liste client;"ABCDEF*";liste montant)
liste client et liste montant sont bien sur les champs ou se situe les valeurs à considérer.
Si vous voulez entrer le nom du client dans une cellule, le "*ABCDEF*" devient:
"*"&adresse cellule&"*"
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
peut être:
pour le nombre
=NB.SI(Liste client;"*ABCDEF*")
et pour le cumul montant
=SOMME.SI(Liste client;"ABCDEF*";liste montant)
liste client et liste montant sont bien sur les champs ou se situe les valeurs à considérer.
Si vous voulez entrer le nom du client dans une cellule, le "*ABCDEF*" devient:
"*"&adresse cellule&"*"
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
bonjour à tous,
Une solution à tes calculs avec SOMMEPROD :
https://www.cjoint.com/?3Fnj3Ml0Lvb
C'est la même formule sur la plage concernée avec une variante montant et nombre.
Une solution à tes calculs avec SOMMEPROD :
https://www.cjoint.com/?3Fnj3Ml0Lvb
C'est la même formule sur la plage concernée avec une variante montant et nombre.
salut gb
c'est bien la même formule mais sauf erreur (c'est assez courant chez moi) ,il reste un problème à traiter, à savoir que dans la liste de noms de clients de ton modèle dans la feuille général,et si j'ai bien compris la demande, il peut y avoir des noms de clients complétés d'une localisation (par ex: Client Rouen, Client Paris pour le même client)
c'est pourquoi j'ai proposé SOMMEPROD doublée d'une matricielle utilisant le code TROUVE.
Mais je jette un oeil sur le fichier du demandeur pour confirmer ça.Sinon bien sur ta proposition fonctionne impec
ps: Après vérif ,effectivement la condition "noms complétés" évoquée dans le message initial du demandeur (voir message 1), n'est pas présente dans le fichier modèle mis à disposition???????
bien amicalement
c'est bien la même formule mais sauf erreur (c'est assez courant chez moi) ,il reste un problème à traiter, à savoir que dans la liste de noms de clients de ton modèle dans la feuille général,et si j'ai bien compris la demande, il peut y avoir des noms de clients complétés d'une localisation (par ex: Client Rouen, Client Paris pour le même client)
c'est pourquoi j'ai proposé SOMMEPROD doublée d'une matricielle utilisant le code TROUVE.
Mais je jette un oeil sur le fichier du demandeur pour confirmer ça.Sinon bien sur ta proposition fonctionne impec
ps: Après vérif ,effectivement la condition "noms complétés" évoquée dans le message initial du demandeur (voir message 1), n'est pas présente dans le fichier modèle mis à disposition???????
bien amicalement
Bonjour Vaucluse,
J'avais bien vu la totalisation sans localisation (absente de l'exemple de Elcaprio) mais il suffit de rajouter ce que tu avais mis dans ta formule pour que cela fonctionne.
Pas toujours facile pour les demandes de faire un classeur totalement conforme :)
Bien cordialement.
J'avais bien vu la totalisation sans localisation (absente de l'exemple de Elcaprio) mais il suffit de rajouter ce que tu avais mis dans ta formule pour que cela fonctionne.
=SOMMEPROD((général!$A$10:$A$150=$B13)*(GAUCHE(général!$E$10:$E$150;NBCAR(E$11))=E$11)*général!$G$10:$G$150)
Pas toujours facile pour les demandes de faire un classeur totalement conforme :)
Bien cordialement.
Merci de vos réponses, en effet sur le fichier j'ai oublier de mettre la particularité qu'évoque Vaucluse.
Il y a bien plusieurs ville par client, ce qui donne :
http://cjoint.com/?BFnkOaZFLlv
Désolé pour le temps de réponse, j'étais en rdv avec mon maitre de stage et mon prof référent.
Cordialement
Il y a bien plusieurs ville par client, ce qui donne :
http://cjoint.com/?BFnkOaZFLlv
Désolé pour le temps de réponse, j'étais en rdv avec mon maitre de stage et mon prof référent.
Cordialement
Nous voila d'accord
Toutefois, ce 'est pas tout à fait la proposition de Gb que j'ai mis dans mon fichier modèle... mais elle fonctionne très bien si le nom du client est en tête de texte et reste plus simple que la mienne puisqu'elle n'exige pas d'entrée matricielle.
pour le cas où le nom de client se ballade dans le texte, voir le modèle transmis hier soir.
D'où quand même ma dernière question que je répète:
quel est la date de votre Excel sachant que les codes NB.SI. ENS et SOMME.SI.ENS, applicables depuis Excel 2007 sont bien plus simples à mettre en place dans tous les cas.
crdlmnt
Toutefois, ce 'est pas tout à fait la proposition de Gb que j'ai mis dans mon fichier modèle... mais elle fonctionne très bien si le nom du client est en tête de texte et reste plus simple que la mienne puisqu'elle n'exige pas d'entrée matricielle.
pour le cas où le nom de client se ballade dans le texte, voir le modèle transmis hier soir.
D'où quand même ma dernière question que je répète:
quel est la date de votre Excel sachant que les codes NB.SI. ENS et SOMME.SI.ENS, applicables depuis Excel 2007 sont bien plus simples à mettre en place dans tous les cas.
crdlmnt
L'entreprise est sous Excel 2007.
La somme des factures fonctionnes très bien, MERCI :)
Par contre je n'arrive pas a mettre en place le décompte du nombre de facture...
Je suis désolé, les formules matriciels ne me parle pas du tout. C'est la première fois que je dois en utilisé. Alors merci pour votre patience également.
Cordialement.
La somme des factures fonctionnes très bien, MERCI :)
Par contre je n'arrive pas a mettre en place le décompte du nombre de facture...
Je suis désolé, les formules matriciels ne me parle pas du tout. C'est la première fois que je dois en utilisé. Alors merci pour votre patience également.
Cordialement.
Alors voila le modèle avec les codes NB.SI.ENS et SOMME.SI.ENS
c'est beaucoup plus simple.
dans ce modèle, le nom du client peut se situer n'importe où dans le texte de la liste sur feuille général
https://www.cjoint.com/?BFnlNfWhtA6
bonne route
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
c'est beaucoup plus simple.
dans ce modèle, le nom du client peut se situer n'importe où dans le texte de la liste sur feuille général
https://www.cjoint.com/?BFnlNfWhtA6
bonne route
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Bonjour
Merci pour votre réponse.
Le problème c'est que mon client est de la forme, par exemple, "Carefour Rouen" sur la ligne 1; "Carefour Nante"; "Carefour Rome" etc... mon but est de connaitre le nombre de "carefour", qu'importe le lieu ou il ce situe.
Je crois qu'il y a une fonction GAUCHE qui peut me servir, mais je ne voit pas trop comment.
Cordialement
Merci pour votre réponse.
Le problème c'est que mon client est de la forme, par exemple, "Carefour Rouen" sur la ligne 1; "Carefour Nante"; "Carefour Rome" etc... mon but est de connaitre le nombre de "carefour", qu'importe le lieu ou il ce situe.
Je crois qu'il y a une fonction GAUCHE qui peut me servir, mais je ne voit pas trop comment.
Cordialement
bonjour
vous n'avez pas du appliquer correctement la proposition qui correspond à ce que vous souhaitez
=NB.SI(général!E:E;"*carrefour*")
ou si vous inscrivez par exemple "carrefour" en X1
=NB.SI(général!E:E;"*"&X1&"*")
attention aux signes..... et au fait que le libellé doit être strictement identique à celui cherché (carefour avec 1 ou 2 r par exemple, ça n'ira pas, mais par contre si vous placez refour entre les astérisques, ça fonctionne)
pour info:
Pour utiliser la fonction gauche, NB.SI qui n'est pas matriciel ne s'applique pas:
essayez:
=SOMMEPROD((GAUCHE(général!E10:E1000;8)="Carefour")*1)
pour le nombre de client
et:
=SOMMEPROD((Gauche(général!E10:E100;8)="carefour")*(général!champ des montants))
mais la solution avec NB.SI et SOMME.SI est plus simple et moins lourde pour le fichier.
crdlmnt
crdlmnt
vous n'avez pas du appliquer correctement la proposition qui correspond à ce que vous souhaitez
=NB.SI(général!E:E;"*carrefour*")
ou si vous inscrivez par exemple "carrefour" en X1
=NB.SI(général!E:E;"*"&X1&"*")
attention aux signes..... et au fait que le libellé doit être strictement identique à celui cherché (carefour avec 1 ou 2 r par exemple, ça n'ira pas, mais par contre si vous placez refour entre les astérisques, ça fonctionne)
pour info:
Pour utiliser la fonction gauche, NB.SI qui n'est pas matriciel ne s'applique pas:
essayez:
=SOMMEPROD((GAUCHE(général!E10:E1000;8)="Carefour")*1)
pour le nombre de client
et:
=SOMMEPROD((Gauche(général!E10:E100;8)="carefour")*(général!champ des montants))
mais la solution avec NB.SI et SOMME.SI est plus simple et moins lourde pour le fichier.
crdlmnt
crdlmnt
Merci pour votre réponse.
Le la fonction nb.si que vous m'avez donné fonctionne.
Maintenant il faudrait que j'arrive a la conditionné par rapport a une 3eme cellule. En fait j'applique cette fonction pour les factures du mois en cours (donc dans ma colonne A j'ai un 1); pour les factures des 3 derniers mois ("1 à 3" dans colonne A) etc...
En clair: sur ma feuille 1 j'ai un tableau récapitulatif par période qui donne celà:
ligne 1 Total Carrefour Auchan etc
ligne 2 En nombre de facture En valeurs TTC (pour total; carrfour et Auchan)
Colonne A:
mois en cours
1 à 3 mois
3 à 6 mois
plus de 6 mois
Total Echu
Merci pour votre aide
Cordialement
Le la fonction nb.si que vous m'avez donné fonctionne.
Maintenant il faudrait que j'arrive a la conditionné par rapport a une 3eme cellule. En fait j'applique cette fonction pour les factures du mois en cours (donc dans ma colonne A j'ai un 1); pour les factures des 3 derniers mois ("1 à 3" dans colonne A) etc...
En clair: sur ma feuille 1 j'ai un tableau récapitulatif par période qui donne celà:
ligne 1 Total Carrefour Auchan etc
ligne 2 En nombre de facture En valeurs TTC (pour total; carrfour et Auchan)
Colonne A:
mois en cours
1 à 3 mois
3 à 6 mois
plus de 6 mois
Total Echu
Merci pour votre aide
Cordialement
J'avoue que je ne comprend pas la configuration de votre fichier
pouvez vous mettre un modèle même bidonné,mais représentant votre tableau et spécifiant les résultats attendus sur:
https://www.cjoint.com/
en revenant ici placer le lien donné par le site.
pouvez vous mettre un modèle même bidonné,mais représentant votre tableau et spécifiant les résultats attendus sur:
https://www.cjoint.com/
en revenant ici placer le lien donné par le site.
je ne peut accéder au site:
Site Web dangereux bloqué
Emplacement: www.cjoint.comL'accès a été bloqué en raison de la découverte de la menace Mal/HTMLGen-A sur ce site Web.
Voilà la structure de mon tableau récapitulatif:
Sur une ligne j'ai mes clients.
Dans ma colonne 1 j'ai les périodes (donc: "mois en cours"; "1 à 3 mois"; "3 à 6 mois" etc...)
Chaques clients a 2 colonnes: une pour le nombre de facture sur la période défini par la ligne, et une pour la somme total des factures de la période.
Les données sont récupérer sur une feuille "général". Sur cette feuille les nom des clients ce trouve dans la colonne E et les sommes dans la colonne G. La colonne A est intitulé "mois" et elle contiens une formule me donnant la période a partir de la date de saisi (placé dans une cellule) et de la date de facturation (placé dans la colonne B).
j'espère avoir été plus explicite...
Site Web dangereux bloqué
Emplacement: www.cjoint.comL'accès a été bloqué en raison de la découverte de la menace Mal/HTMLGen-A sur ce site Web.
Voilà la structure de mon tableau récapitulatif:
Sur une ligne j'ai mes clients.
Dans ma colonne 1 j'ai les périodes (donc: "mois en cours"; "1 à 3 mois"; "3 à 6 mois" etc...)
Chaques clients a 2 colonnes: une pour le nombre de facture sur la période défini par la ligne, et une pour la somme total des factures de la période.
Les données sont récupérer sur une feuille "général". Sur cette feuille les nom des clients ce trouve dans la colonne E et les sommes dans la colonne G. La colonne A est intitulé "mois" et elle contiens une formule me donnant la période a partir de la date de saisi (placé dans une cellule) et de la date de facturation (placé dans la colonne B).
j'espère avoir été plus explicite...