Microsoft 365 Extraction de données sans doublon très complexe

stephvico

XLDnaute Nouveau
Bonjour à tous,

Cela fait un bail que je ne suis pas venu à mon regret.

Voilà j'ai une problématique que j'ai essayé de résoudre en cherchant sur le Forum mais en vain...

Donc je vous l'expose ici :

J'ai une liste de commande qui est en transit sur un bateau et peut rester sur 2 années et 4 mois en Transit exemple du 25/11/2023 au 01/02/2024 pour autant cette marchandise ma commande ne doit apparaître qu'une seule fois dés qu'elle commence son Transit et non compté 4 fois

J'ai déjà Essayé les moyennes en résultat mais dans ma base cela ne me va pas dés lors que je fais un TCD regroupé par Saison je mets ci-dessous ma base en image et l'attendu en image, je joins également le fichier Excel.

La base de données en exemple
Base données.png


Et mon attendu

Attendu Base données.png


Merci de votre aide

Steph
 

Pièces jointes

  • Exemple Pour extraire valeur unique dés le premier trouvé.xlsx
    12 KB · Affichages: 10

alexga78

XLDnaute Occasionnel
Bonjour à Tous,

Avec Power Query.
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped" = Table.Combine(Table.Group(Source, {"MARCHE"},
    {{"x", each Table.FirstN(Table.Sort(_, {"Année/ Mois", 0}),1)}})[x])
in
    #"Grouped"

Bonne journée
 

merinos

XLDnaute Accro
Bonjour @stephvico

Je vois 2 solutions possibles: PowerQuery et une formule matricelle

Pour la formule matricelle , j'ai employé une fonction LAMBDA... ce qui reduit l'écriture de la formule
 

Pièces jointes

  • Exemple Pour extraire valeur unique dés le premier trouvé.xlsx
    23.7 KB · Affichages: 4

stephvico

XLDnaute Nouveau
Bonjour à Tous,

Avec Power Query.
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped" = Table.Combine(Table.Group(Source, {"MARCHE"},
    {{"x", each Table.FirstN(Table.Sort(_, {"Année/ Mois", 0}),1)}})[x])
in
    #"Grouped"

Bonne journée
Bonjour Alexga78:

J'ai essayé dans Query mais j'ai une erreur,

En fait j'ai déjà créer une table qui rassemble X fichier afin de tout compiler appelé "Compil Transit"

Source = #"Compil Transit"
#"Grouped" = Table.Combine(Table.Group(Source, {"MARCHE"},
{{"x", each Table.FirstN(Table.Sort(_, {"Année/ Mois", 0}),1)}})[x])
in
#"Grouped"

Mais j'ai une erreur Expression SyntaxError : Jeton attendu

je ne comprends pas
 

alexga78

XLDnaute Occasionnel
Merci j'ai modifié ça à l'air de fonctionner pas de message d'erreur mais Power Query tourne depuis 1 heure il a l'air de mettre un peu de temps certainement lié à la volumétrie de données que j'ai
Stephvico,
une heure c'est bien trop!
Ta requète #"Compil Transit" fait elle de nombreuses modifications ?
un fichier exemple, sans données sensibles, des données à compiler serait utile.
 

stephvico

XLDnaute Nouveau
Stephvico,
une heure c'est bien trop!
Ta requète #"Compil Transit" fait elle de nombreuses modifications ?
un fichier exemple, sans données sensibles, des données à compiler serait utile.
Je vais voir justement pour envoyer sans données sensibles,
Mais requête ne fait aucune modification juste elle compile 4 années de données qui font un total de 54 716 Lignes je ne comprends pas trop
 

dysorthographie

XLDnaute Accro
Bonjour,
désolé j'ai pas accès à Power Query
VB:
Sub test()
Dim Cn As String, Sql As String, Rs As Object
Cn = GenereCSTRING(Xls, Base:=ThisWorkbook.FullName, Titre:=True)
With ThisWorkbook.Sheets("dysorthographie")
    With .ListObjects("dysorthographie")
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
    End With
    Sql = "select FIRST([Année/ Mois]),FIRST([saison]),[MARCHE],[incoterm],[montant_marchandise] ,FIRST([Année]),FIRST([Mois])" & _
    "from [Base$] GROUP BY [MARCHE],[incoterm],[montant_marchandise]"
    .Range("A2").CopyFromRecordset ExecuteRequete(Sql, Cn)
    .Activate
End With
End Sub
 

Pièces jointes

  • Exemple Pour extraire valeur unique dés le premier trouvé.xlsb
    41.5 KB · Affichages: 3

Efgé

XLDnaute Barbatruc
Bonjour à tous,
J'ai ouvert le fichier mais j'ai un peu de mal à reproduire la formule dans mon fichier car quand je veux copier la formule elle disparait
La formule a copier est en $M$1 de mon exemple:
VB:
=LET(
EnT; Data[#En-têtes];
Mrch;Data[MARCHE];
Val;INDEX(Data;EQUIVX(UNIQUE(Mrch);Mrch;0);EQUIVX(EnT;EnT;0));
ASSEMB.V(EnT;Val)
)

Avec un tableau structuré nommé "Data"

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
314 216
Messages
2 107 389
Membres
109 821
dernier inscrit
tristan28