Formule sans doublons et avec multiples conditions

Bonjour,

Tout d'abord merci à tous les contributeurs de ce forum que je parcours très fréquemment !

Je fais face actuellement à un problème de taille dans un fichier,

Je dois calculer le taux de clients qui réachetent :

(nombre de clients qui ont achetés une croisière sur la période et ont réacheté une croisière dans les deux ans

/

nombre de clients qui ont achetés une croisière sur la période)

Pour cela je possède le fichier suivant avec les informations suivantes :

  • Numéro client
  • Numéro de croisière (un client peut faire plusieurs croisière dans l'année
  • Date d'achat de la croisière
  • Nombre de croisières suivants la commande (1,2,3, etc.)

J'ai essaye de nombreuses formules avec NB.SI et Somme.prod mais impossible d'avoir un taux correct. Les clients qui ont effectués plusieurs voyages dans la période définie en rassemblant l'ensemble des critéres font doublons et faussent mes calculs

J'arrive facilement avec un condition NB.SI à formuler les conditions mais impossible de formuler l'exclusion des doublons, j'ai essayé avec des fonctions matricielles (Somme prod) et avec Equiv et NB.si mais je n'y arrive pas...

Avez-vous une idée pour m'aider ?

Merci,

Louis

12test-louis.xlsx (938.05 Ko)

Bonjour,

est ce que les lignes de doublon sont identique sur les 4 colonnes ?

sinon lequel choisir, par exemple:

736268 2292759 2009-08-31 0

724106 491378 2009-08-31 2 301

736037 2478320 2009-08-31 0

735775 491378 2009-08-31 10 224

ps/ il n'y a pas de doublon en colonne B

Bonjour à tous

Un essai à tester. Te convient-il ?

Bye !

35test-louis-v1.xlsm (935.35 Ko)

Bonjour,

j'ai ajouté une formule "Doublon" en colonne F

les formules en cellule H1:H3

=SOMMEPROD((ANNEE(C2:C20000)=2010)*(F2:F20000=1))
=SOMMEPROD((D1:D20000>1)*(F1:F20000=1)*(E1:E20000<=730))
=H2/H1

j'ai aussi réduit le nombre de lignes à la ligne 20000, forcer de le faire car lors d'une réponse, le fichier joint ne peut dépasser 1000K

17test-louis.xlsx (0.96 Mo)

Bonjour,

Merci à tous pour vos réponses !

@sabV

Merci beaucoup

Réponse 1

Ils arrivent que des même clients (colonne B) effectuent plusieurs croisières (Colonne A)

Par doublon, je veux dire un client qui a effectue plusieurs voyage (cf exemple :

Cf exemple :

736268 2292759 2009-08-31 0

724106 491378 2009-08-31 2 301

736037 2478320 2009-08-31 0

735775 491378 2009-08-31 10 224

Réponse 2

Malheureusement, la solution avec une colonne supplémentaire n'est pas adapté à mon projet. J'ai de nombreuses colonnes (donc conditions) supplémentaire dans mon fichier source. Ta solution nécessiterait la mise en place de très nombreuses colonnes de calcul de doublons et je ne pourrais pas me le permettre.

J'avais vu une formule comme celle-ci mais je n'arrive pas à l'adapter, celle-ci te semble plausible ?

=NB(1/FREQUENCE(SI((Colonne1=conditioncolonne1)*Colonne2=conditioncolonne2)*(Colonne3=conditioncolonne3);EQUIV(colonnedoublon;colonnedoublon;0));LIGNE(INDIRECT("1:"&LIGNES(colonnedoublon)))))

colonnedoublon : Colonne client

Colonne2 : date d'achat

Colonne1 : nombre de croisière achetées suivant l'achat

Colonne3 :date du prochain réachat

@gmb

Merci beaucoup !

Ta formule fonctionne parfaitement !

Mon fichier source, comporte 226 000 lignes. De plus j'ai de nombreuses colonnes en plus (CA, Type de bateau de la croisière) que je n'ai pas inclus dans le fichier qui sont autant de conditions supplémentaires.

Malheureusement, je ne suis pas compétent avec VBA et je suis donc dans l'incapacité d'adapter la formule aux colonnes que je voudrais rajouter et aux lignes supplémentaires.

Y-a-til une solution plus flexible ?

Louis

Bonjour à tous

Louis6059 a écrit :

je suis donc dans l'incapacité d'adapter la formule aux colonnes que je voudrais rajouter et aux lignes supplémentaires.

Pour les lignes, la macro s'adapte.

Pour les colonnes, il faut voir et surtout modifier les adresses des résultats.

Essaie de joindre un fichier définitif en passant par http://www.cjoint.com s'il est trop gros.

Bye !

Bonjour,

Merci beaucoup pour ta réponse rapide !

Le fichier fait plus de 100 mo et j'ai environ une vingtaine de colonnes différentes avec des types de variable qui différent à chaque fois (date, range, texte, numérique etc.), Ca serait très fastidieux pour toi non ?

Tu fonctionnes uniquement avec des Macro ?

Peux-tu sinon publier le code de la macro en affichant les données à changer pour modifier une variable ?

Merci beaucoup,

Louis

12test-louis2.xlsx (15.01 Ko)
Louis6059 a écrit :

Ca serait très fastidieux pour toi non ?

Le nombre de colonnes m’importe peu.

Je n’en ai besoin que de deux : la colonne ‘’CodCliDir’’ qui identifie le client et la colonne ‘’ DateCfm’’ qui confirme l’engagement du client.

Tu fonctionnes uniquement avec des Macro ?

Non mais question formules, ce n’est pas mon fort.

Peux-tu sinon publier le code de la macro en affichant les données à changer pour modifier une variable ?

Que veux-tu dire ? Que veux-tu faire varier ?

Bye !

Dans la feuille 2 ,

Il y a la liste des variables et un modèle de présentation

A ta dispo pour des explications !

Merci beaucoup pour ton implication,

Louis

Louis6059 a écrit :

Dans la feuille 2 ,Il y a la liste des variables et un modèle de présentation

Désolé mais cela ne m'éclaire pas beaucoup.

Je te joins un nouveau fichier qui est un mix des deux derniers que tu as envoyés, pour ce qui est des données.

Si cela peut t'aider....

Bye !

18test-louis-v2.xlsm (659.67 Ko)
Rechercher des sujets similaires à "formule doublons multiples conditions"