Power Query - Expression.Error : L'argument 'count' est hors limites

Bonjour à tous,

Après plusieurs recherche, je viens vers vous pour un message d'erreur Power Query, que je ne comprends.

Le voici : "Expression.Error : L'argument 'count' est hors limites Détail : -26

La source de cette table est un fichier Dimension avec des Tarifs (donc confidentiel ). Cette donnée se renouvelle tous les matins.
C'est seulement à partir de ce matin que ce message apparaît.

Chose troublante, lorsque que je remets l'extraction de la veille, le message ne disparaît pas.

Ainsi, je viens vers vous car je souhaiterais comprendre le message afin de m'améliorer et d'être autonome pour gérer ce problème à l’avenir.

Et également votre aide pour pouvoir le résoudre

Par avance, je vous remercie.

Cordialement

Théo

Hello,

Peux tu anonymiser les datas et mettre des 1 partout pour les nombres et des "a" partout pour le texte et le 01/01/1900 pour les dates stp ?

Sans fichier on ne peut rien faire.

Sinon envoie au moins la requête entière sans les datas associées...

@+

Bonjour à tous !

Je résume :

  • Pas de code de la requête récalcitrante....
  • Pas de classeur anonymisé (cela peut se créer....)...

Vous ne vous facilitez pas les choses !

Bonjour à tous,

J'ai fait mon enquête et finalement c'est la dimension promo achat qui cause le problème.

De plus, l'extraction de la veille fonctionne.

Je vous partage la requête

let
    Source = Table.NestedJoin(TarifsAchatJour, {"ID_PRODUIT", "Date tarif", "ID_FOURNISSEUR"}, TarifsPromoJour, {"ID_PRODUIT", "Date tarif", "ID_FOURNISSEUR"}, "TarifsPromo", JoinKind.LeftOuter),
    #"TarifsPromo développé" = Table.ExpandTableColumn(Source, "TarifsPromo", {"ID_FOURNISSEUR", "ID_PRODUIT", "Taux promo achat", "PRIXNET_PROMO", "Date tarif"}, {"ID_FOURNISSEUR.1", "ID_PRODUIT.1", "TAUX_PROMO", "PRIXNET_PROMO", "Date tarif.1"}),

    /*je fais une fusion sur deux tables en conservant toutes lavaleurs à partir des 2 tables, il faut donc que je fusionne les codes produits, dates tarifs, et id_fournisseur pour ne pas avoir de valeur null*/
    AjoutFusionCodeProduit = Table.AddColumn(#"TarifsPromo développé", "Fusion ID_PRODUIT", each if [ID_PRODUIT] = null then [ID_PRODUIT.1] else [ID_PRODUIT]),
    AjoutFusionDateTarif = Table.AddColumn(AjoutFusionCodeProduit, "Fusion Date tarif", each if [Date tarif] = null then [Date tarif.1] else [Date tarif]),
    AjoutFusionCodeFournisseur = Table.AddColumn(AjoutFusionDateTarif, "Fusion ID_FOURNISSEUR", each if [ID_FOURNISSEUR] = null then [ID_FOURNISSEUR.1] else [ID_FOURNISSEUR]),
    AjoutPromo = Table.AddColumn(AjoutFusionCodeFournisseur, "Promo", each if [TAUX_PROMO] <> 0 then [Prix] * (1-[TAUX_PROMO]) else if [PRIXNET_PROMO] <> 0 then [PRIXNET_PROMO] else 0),
    PromoRemplaceNullparZero = Table.ReplaceValue(AjoutPromo,null,0,Replacer.ReplaceValue,{"Promo"}),
    ColSupp = Table.RemoveColumns(PromoRemplaceNullparZero,{"ID_PRODUIT", "ID_PRODUIT.1", "Date tarif.1", "Date tarif", "ID_FOURNISSEUR.1", "ID_FOURNISSEUR", "PRIXNET_PROMO", "TAUX_PROMO"}),
    ColRenom = Table.RenameColumns(ColSupp,{{"Fusion ID_PRODUIT", "ID_PRODUIT"}, {"Fusion Date tarif", "Date tarif"}, {"Fusion ID_FOURNISSEUR", "ID_FOURNISSEUR"}, {"Prix", "Prix base"}}),

    /*Calcul de NbJoursMois, le nb de jours dans le mois */
    AjoutFinMois = Table.AddColumn(ColRenom, "FinMois", each Date.EndOfMonth([Date tarif])),
    AjoutDébutMois = Table.AddColumn(AjoutFinMois, "DébutMois", each Date.StartOfMonth([Date tarif])),
    AjoutNbJoursPromo = Table.AddColumn(AjoutDébutMois, "NbJoursPromo", each if [Promo] <> 0 then 1 else 0),

    /* Sur certaines lignes, prix promo >= achat, il faut les enlever, ce ne sont pas des vrais promos */
    AjoutDiffPromoBase = Table.AddColumn(AjoutNbJoursPromo, "DifférencePromoPrixBase", each [Promo]-[Prix base]),
    FiltreDiff0 = Table.SelectRows(AjoutDiffPromoBase, each ([DifférencePromoPrixBase] < 0)),
    #"Lignes filtrées" = Table.SelectRows(FiltreDiff0, each ([Promo] <> 0))
in
    #"Lignes filtrées"

L'erreur apparaît lors de l'étape "FiltreDiff0" (4eme ligne en partant de la fin)

Merci pour votre aide

Bonjour à tous de nouveau !

De plus, l'extraction de la veille fonctionne.

Le souci serait donc lié aux données importées....

Un classeur anonymisé (créé à partir de la dernière extraction) ?

Hello JFL

Je pencherais sur une valeur null ou du texte du style un espace ou quelque chose du genre

Mais sans classeur ca devient compliqué d'aller plus loin, je te rejoins sur le sujet !

@+

Bonjour à tous !

Erreur trouvée !

J'explique mon erreur au mieux. Si jamais vous avez des questions, n'hésitez pas. J'y répondrai avec plaisir afin d'aider les prochains.

L'erreur est à 2 endroits :

- mon extraction source

- Formule rajoutée dans mon Power Query.

Extraction source :

Une ligne a pour les données suivantes :

Date début : 27/01/2024

Date fin : 30/01/2024

Mes formules :

Je fais une formule DateList qui me permet d’avoir les calendriers sur l'ensemble de mes dates.

Comme certains contrat ont pour date de fin le 31/12/2099, je remplace celle-ci par la dernière date de mon DimDates; ici le 31/12/2023.Sinon cela me créerait un "calendrier" jusqu'en 2099.

Ainsi, j'avais pour date de début le 27/01/2024 et date de fin le 31/12/2023.

Cela me provoquait cette erreur "Expression.Error : L'argument 'count' est hors limites Détail : -26

J'espère que cela pourra aider d'autres personnes.

Je vous remercie pour votre aide et reste à disposition pour toutes questions

Hey,

Top si tu as trouvé, si jamais tu peux mettre des fichiers exemples anonymisés ça pourra être chouette la prochaine fois

@+

Je prends note pour les prochaines fois

A+

Rechercher des sujets similaires à "power query expression error argument count hors limites"