Microsoft 365 Trouver et calculer écarts ventes provenant de 2 systèmes

  • Initiateur de la discussion Initiateur de la discussion Germaine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Germaine

XLDnaute Junior
Bonjour le forum,
Je dois vérifier la réciprocité des ventes provenant de 2 logiciels de comptabilité et 1 autre de vente.
Je dois trouver le même montant des au global.
La difficulté que je rencontre, ce sont les libellés de (DATA-B) qui sont vraiment mal foutus.
Pourriez-vous m'aider à mettre en place une réflexion, un retraitement me permettant de comparer les 2 fichiers afin d'expliquer les écarts.
Dans la Data, il y'a la notion de facture et d'avoir.
L'Avoir vient en soustraction de la vente et est dans la colonne debit dans le fichier de comptabilité, mais le fichier commercial toutes les données sont dans une seule colonne.
Dans le calcul des ventes du fichier commercial "DATA - A", il faut tenir compte que si le libellé est AV....représentant un avoir.
Dites moi
Vous remerciant par avance
Germaine
 

Pièces jointes

Bonjour à tous,

Un début de piste avec Power Quéry

Cdt
Bonjour OKBI,
Merci.
Cependant le résultat de ton écart résultant de ta proposition est faux.
En fait je cherche à justifier l'ecart des ventes entre les outils qui peut être provoqué par 1 facture manquante ou pas, ou parce qu'une facture ayant le même numéro mais pas le même montant d'une base de données à l'autre.
Germaine
 
Bonjour Jean-Eric,
Très efficace ta proposition pour comprendre mes écarts entre la gestion commerciale et la comptabilité.
Merci à toi, le forum
Germaine
Bonjour Jean-Eric,
Je viens de changer le format de numero de facture, j'ai 1#NA, pourrais-tu m'aiguiller s'il vous plait ?
Germaine

1743355126588.png
 
Bonsoir à toutes & à tous, bonsoir @Germaine
Fidèle à moi même : 🐌🐢!

Une solution avec une formule matricielle dynamique et quelques noms définis.
les données sont dans 2 Tableaux Structurés (TS_DATA_A et TS_DATA_B)
Le résultat a cet aspect :
1743368459436.png


les noms définis :
Réf_Factures_A=FILTRE(TS_DATA_A[N° pièce];GAUCHE(TS_DATA_A[N° pièce];1)="F";"")
Réf_Avoirs_A=FILTRE(TS_DATA_A[N° pièce];GAUCHE(TS_DATA_A[N° pièce];2)="AV";"")
Factures_A=CHOISIRCOLS(FILTRE(TS_DATA_A;ESTNUM(EQUIV(TS_DATA_A[N° pièce];Réf_Factures_A;0));{"".""."".""});2;3;5;6)
Avoirs_A=CHOISIRCOLS(FILTRE(TS_DATA_A;ESTNUM(EQUIV(TS_DATA_A[N° pièce];Réf_Avoirs_A;0));{"".""."".""});2;3;5;6)
Réf_B=SUPPRESPACE(DROITE(TS_DATA_B[Libellé écriture];9))
Réf_Factures_B=FILTRE(Réf_B;GAUCHE(Réf_B;1)="F";"")
Réf_Avoirs_B=FILTRE(Réf_B;GAUCHE(Réf_B;2)="AV";"")
Factures_B=ASSEMB.H(Réf_Factures_B;CHOISIRCOLS(FILTRE(TS_DATA_B;ESTNUM(EQUIV(Réf_B;Réf_Factures_B;0)));1;3;5))
Avoirs_B=ASSEMB.H(Réf_Avoirs_B;CHOISIRCOLS(FILTRE(TS_DATA_B;ESTNUM(EQUIV(Réf_B;Réf_Avoirs_B;0)));1;3;4))


La formule :
VB:
=ASSEMB.V({"Factures DATA-A absentes de DATA-B".""."".""};
          FILTRE(Factures_A;ESTNA(EQUIV(Réf_Factures_A;Réf_Factures_B;0));{"".""."".""});
          {"Factures DATA-B absentes de DATA-A".""."".""};
          FILTRE(Factures_B;ESTNA(EQUIV(Réf_Factures_B;Réf_Factures_A;0)));
          {"Avoirs DATA-A absents de DATA-B".""."".""};
          FILTRE(Avoirs_A;ESTNA(EQUIV(Réf_Avoirs_A;Réf_Avoirs_B;0));{"".""."".""});
          {"Avoirs DATA-B absents de DATA-A".""."".""};
          FILTRE(Avoirs_B;ESTNA(EQUIV(Réf_Avoirs_B;Réf_Avoirs_A;0));{"".""."".""});
          {"Montants Factures DATA-A différent de DATA-B".""."".""};
          LET(A;TRIER(FILTRE(Factures_A;ESTNUM(EQUIV(Réf_Factures_A;Réf_Factures_B;0)));1);
              B;TRIER(FILTRE(Factures_B;ESTNUM(EQUIV(Réf_Factures_B;Réf_Factures_A;0)));1);
              C;TRIER(ASSEMB.V(FILTRE(A;CHOISIRCOLS(A;4)<>CHOISIRCOLS(B;4);"");FILTRE(B;CHOISIRCOLS(B;4)<>CHOISIRCOLS(A;4);"")));
              FILTRE(C;CHOISIRCOLS(C;1)<>"";{"".""."".""}));
          {"Montants avoirs DATA-A différent de DATA-B".""."".""};
          LET(A;TRIER(FILTRE(Avoirs_A;ESTNUM(EQUIV(Réf_Avoirs_A;Réf_Avoirs_B;0)));1);
              B;TRIER(FILTRE(Avoirs_B;ESTNUM(EQUIV(Réf_Avoirs_B;Réf_Avoirs_A;0)));1);
              C;TRIER(ASSEMB.V(FILTRE(A;CHOISIRCOLS(A;4)<>CHOISIRCOLS(B;4);"");FILTRE(B;CHOISIRCOLS(B;4)<>CHOISIRCOLS(A;4);"")));
              FILTRE(C;CHOISIRCOLS(C;1)<>"";{"".""."".""})))

Voir pièce jointe
 

Pièces jointes

Re,
je viens de modifier la formule matricielle pour faire apparaître les sous-totaux pour chaque "Rubrique" de ma formule.
Le résultat maintenant à cette allure :
1743372186063.png

La formule matricielle dynamique est :
Code:
=LET(FA;FILTRE(Factures_A;ESTNA(EQUIV(Réf_Factures_A;Réf_Factures_B;0));{"".""."".""});
          FB;FILTRE(Factures_B;ESTNA(EQUIV(Réf_Factures_B;Réf_Factures_A;0)));
          AA;FILTRE(Avoirs_A;ESTNA(EQUIV(Réf_Avoirs_A;Réf_Avoirs_B;0));{"".""."".""});
          AB;FILTRE(Avoirs_B;ESTNA(EQUIV(Réf_Avoirs_B;Réf_Avoirs_A;0));{"".""."".""});
          DFAB;LET(A;TRIER(FILTRE(Factures_A;ESTNUM(EQUIV(Réf_Factures_A;Réf_Factures_B;0)));1);
                   B;TRIER(FILTRE(Factures_B;ESTNUM(EQUIV(Réf_Factures_B;Réf_Factures_A;0)));1);
                   C;TRIER(ASSEMB.V(FILTRE(A;CHOISIRCOLS(A;4)<>CHOISIRCOLS(B;4);"");FILTRE(B;CHOISIRCOLS(B;4)<>CHOISIRCOLS(A;4);"")));
               FILTRE(C;CHOISIRCOLS(C;1)<>"";{"".""."".""}));
          DAAB;LET(A;TRIER(FILTRE(Avoirs_A;ESTNUM(EQUIV(Réf_Avoirs_A;Réf_Avoirs_B;0)));1);
                   B;TRIER(FILTRE(Avoirs_B;ESTNUM(EQUIV(Réf_Avoirs_B;Réf_Avoirs_A;0)));1);
                   C;TRIER(ASSEMB.V(FILTRE(A;CHOISIRCOLS(A;4)<>CHOISIRCOLS(B;4);"");FILTRE(B;CHOISIRCOLS(B;4)<>CHOISIRCOLS(A;4);"")));
               FILTRE(C;CHOISIRCOLS(C;1)<>"";{"".""."".""}));
  ASSEMB.V(ASSEMB.H("Factures DATA-A absentes de DATA_B";{"".""};SOMME(CHOISIRCOLS(FA;4)));FA;
           ASSEMB.H("Factures DATA-B absentes de DATA_A";{"".""};SOMME(CHOISIRCOLS(FB;4)));FB;
           ASSEMB.H("Avoirs DATA-A absents de DATA_B";{"".""};SOMME(CHOISIRCOLS(AA;4)));AA;
           ASSEMB.H("Avoirs DATA-B absents de DATA_A";{"".""};SOMME(CHOISIRCOLS(AB;4)));AB;
           ASSEMB.H("Factures DATA-A différentes de DATA_B";{"".""};SI(LIGNES(DFAB)>=2;SOMME(CHOISIRCOLS(DFAB;4)*EST.IMPAIR(SEQUENCE(LIGNES(DFAB))))-SOMME(CHOISIRCOLS(DFAB;4)*EST.PAIR(SEQUENCE(LIGNES(DFAB))));0));DFAB;
           ASSEMB.H("Avoirs DATA-A différents de DATA_B";{"".""};SI(LIGNES(DAAB)>=2;SOMME(CHOISIRCOLS(DAAB;4)*EST.IMPAIR(SEQUENCE(LIGNES(DAAB))))-SOMME(CHOISIRCOLS(DAAB;4)*EST.PAIR(SEQUENCE(LIGNES(DAAB))));0));DAAB))

Voir Pièce jointe
À bientôt
 

Pièces jointes

Bonjour At The One,

Je viens de commencer à exploiter ta proposition qui me semble vraiment hyper intéressante.
J'ai juste remplacer les données des 2 feuilles.
Les calculs ne sont pas générés !
pourrais-tu m'aiguiller s'il te plaît ?
Dsi-moi
Germaine
 
Bonsoir à toutes & à tous, Bonsoir @Germaine
Je suppose que tu as dû effacer les tableaux structurés TS_DATA_A et TS_DATA_B.
Il faut sélectionner les lignes de données, faire un clic droit, supprimer, supprimer lignes du tableau.
Puis faire un copier de tes nouvelles données (sans les titres) et un collage spécial valeurs.
Cela pour les deux tableaux.
Si tu veux, je peux faire une petite macro d'import des données dans le classeur..
À bientôt
 
Dernière édition:
Bonsoir à toutes & à tous, Bonsoir @Germaine
Je suppose que tu as dû effacer les tableaux structurés TS_DATA_A et TS_DATA_B.
Il faut sélectionner les lignes de données, faire un clic droit, supprimer, supprimer lignes du tableau.
Puis faire un copier de tes nouvelles données (sans les titres) et un collage spécial valeurs.
Cela pour les deux tableaux.
Si tu veux, je peux faire une petite macro d'import des données dans le classeur..
À bientôt
Bonsoir,
Merci pour ton retour,
Je teste comme expliqué, je n'y avais pas pensé
Germaine
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour