Requête dans Power Query / Filtre qui ne marche pas

Bonjour,

Je vous sollicite car j'ai une requête Power Query qui ne filtre plus sur le critère de condition. Cela fonctionnait depuis 6 mois et depuis hier les résultats ne correspondent plus à ce qui attendu.
Les résultats sont générés à partir de 2 tables (Onglets du fichier) : TAB_PE et TAB_CONTRIBUTEUR et sont stockés dans un 3ème onglet.
La jointure s'effectue sur le champ ID_SUJET
TAB_PE contient 1157 enregistrements
TAB_CONTRIBUTEUR contient 203 enregistrements
144 enregistrements communs sur le critère ID_SUJET
La requête Power Query est la suivante :

let
    Source = Table.NestedJoin(TAB_PE,{"ID_SUJET"},TAB_CONTRIBUTEUR,{"ID SUJET"},"TAB_CONTRIBUTEUR",JoinKind.Inner),
    tblCONTRIBUTEUR_dével = Table.ExpandTableColumn(Source, "TAB_CONTRIBUTEUR", {"Sous-thèmes", "Contributeurs principaux",  "Chefs de services en CC", "Direction associée", "ID SUJET"}, {"Sous-thèmes", "Contributeurs principaux", "Chefs de services en CC", "Direction associée", "ID SUJET"}),
    TypeDate = Table.TransformColumnTypes(tblCONTRIBUTEUR_dével,{{"Date de Réception", type date}, {"Date limite interne de Réponse", type date}, {"Date précédente#(lf)limite interne", type date}, {"Date limite externe de Réponse", type date}, {"Date de Réponse des experts", type date}, {"Validation hiérarchique", type date}, {"Date Envoi PE", type date},{"Clôture", type date}, {"Outcome", type date}}),
    ColSupp = Table.RemoveColumns(TypeDate,{"Délai de réponse", "Destinataire demande", "Accès réponse #(lf)à la PE", "Accès Outcome de la PE", "Commentaires", "Date de relance", "Heure DL#(lf)Externe", "Date précédente#(lf)limite interne"})
in
    ColSupp

Avant elle s'exécutait et retournait 144 lignes mais aujourd'hui sans avoir fait un quelconque changement a requête retourne 1157 lignes comme si on faisait du LEFT OUTER JOIN alors que c'est bien précisé JoinKind.Inner

J'ai changé en intégrant une instruction de suppression de doublons comme ci-dessous, mais le résultat reste identique, aucun changement

let
    Source = Table.NestedJoin(TAB_PE,{"ID_SUJET"},TAB_CONTRIBUTEUR,{"ID SUJET"},"TAB_CONTRIBUTEUR",JoinKind.Inner),
    tblCONTRIBUTEUR_dével = Table.ExpandTableColumn(Source, "TAB_CONTRIBUTEUR", {"Sous-thèmes", "Contributeurs principaux",  "Chefs de services en CC", "Direction associée", "ID SUJET"}, {"Sous-thèmes", "Contributeurs principaux", "Chefs de services en CC", "Direction associée", "ID SUJET"}),
    TypeDate = Table.TransformColumnTypes(tblCONTRIBUTEUR_dével,{{"Date de Réception", type date}, {"Date limite interne de Réponse", type date}, {"Date précédente#(lf)limite interne", type date}, {"Date limite externe de Réponse", type date}, {"Date de Réponse des experts", type date}, {"Validation hiérarchique", type date}, {"Date Envoi PE", type date},{"Clôture", type date}, {"Outcome", type date}}),
    ColSupp = Table.RemoveColumns(TypeDate,{"Délai de réponse", "Destinataire demande", "Accès réponse #(lf)à la PE", "Accès Outcome de la PE", "Commentaires", "Date de relance", "Heure DL#(lf)Externe", "Date précédente#(lf)limite interne"}),
    #"Doublons supprimés" = Table.Distinct(ColSupp, {"Numéro"})
in
    #"Doublons supprimés"

Comprenez-vous d'où peut venir cette absence de filtre sur le ID_SUJET?
Merci d'avance pour votre aide

Cordialement

Bonjour

Certainement liés aux données que tu ne fournis pas...

Merci 78Chris

Effectivement je ne peux fournir les données qui sont professionnelles mais cela me rassure que le problème ne vienne pas de PowerQuery. Je vais me concentrer sur les données.

Il doit probablement y avoir une donnée qui invalide la requête car ce disfonctionnement n'est intervenu qu'après l'ajout d'une dizaine de lignes depuis hier. Étonnant.

Encore merci

Problème corrigé
Une des deux tables de jointure avait une ligne vide sans champ de jointure ID_SUJET. Vu que la table principale contenait plusieurs centaines de lignes en attente d'affectation de ID_SUJET, la requête retournait logiquement toutes les lignes avec ID_SUJET vide. Il a donc suffit d'enlever cette ligne vide dans la table qui définit les ID_SUJET pour résoudre le problème.
Pour mieux gérer il aurait fallu avoir une condition de la requête comme ce qu'on fait sous SQL : Where T1.ID_SUJET=T2.ID_SUJET AND ID_SUJET<>""
Question : Ce type de condition est -elle possible dans PowerQuery?
Merci d'avance pour toute suggestion.

RE

Dans la jointure non.

Il faut filtrer les vides avant le jointure

Pour nombre de points c'est plus souple qu'un requêteur SQL, mais pour les jointures on a moins de possibilités (je me souviens que cela m'avait freiné au début)

Rechercher des sujets similaires à "requete power query filtre qui marche pas"