Power Query filtrer tableau avec 2 variables

bennp

XLDnaute Occasionnel
Bonjour, je souhaite filtrer avec power query, toutes les lignes de "code_type_local"= "None" et "id_mutation" ayant la même valeur.

Si une même valeur de "id_mutation" comporte une valeur différente de "none" dans "code_type_local", ne rien afficher.

Uniquement les autres.

Par ex, les 2 lignes 2022-1349193 doivent être affichées :

2022-1349193None
619​
2022-1349193None
619​

mais pas ces 3 lignes 2022-1351772 :

2022-13517721
210​
2022-1351772None
13​
2022-1351772None
17​

pour une même valeur "id_mutation", on a une valeur différente de "none" dans la colonne "code_type_local"

J'espère avoir été clair, ça ne l'est pas en tout cas pour GPT-3 :)

Merci d'avance
 

Pièces jointes

  • test.xlsx
    24.6 KB · Affichages: 8

Cousinhub

XLDnaute Barbatruc
Ok,
Dans l'éditeur avancé, remplace le code par celui-ci :
PowerQuery:
let
    Source = Binary.Decompress(File.Contents("C:\Users\cousi\Documents\Excel\exemples\PQ\csv\essai\full.csv.gz"), Compression.GZip),
    #"CSV importé" = Csv.Document(Source,[Delimiter=",", Columns=40, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"En-têtes promus" = Table.PromoteHeaders(#"CSV importé", [PromoteAllScalars=true]),
    #"Lignes filtrées1" = Table.SelectRows(#"En-têtes promus", each ([code_departement] = "974")),
    #"Type modifié" = Table.TransformColumnTypes(#"Lignes filtrées1",{{"id_mutation", type text}, {"date_mutation", type date}, {"numero_disposition", Int64.Type}, {"nature_mutation", type text}, {"valeur_fonciere", type number}, {"adresse_numero", Int64.Type}, {"adresse_suffixe", type text}, {"adresse_nom_voie", type text}, {"adresse_code_voie", type text}, {"code_postal", Int64.Type}, {"code_commune", Int64.Type}, {"nom_commune", type text}, {"code_departement", Int64.Type}, {"ancien_code_commune", type text}, {"ancien_nom_commune", type text}, {"id_parcelle", type text}, {"ancien_id_parcelle", type text}, {"numero_volume", type text}, {"lot1_numero", Int64.Type}, {"lot1_surface_carrez", type number}, {"lot2_numero", Int64.Type}, {"lot2_surface_carrez", type number}, {"lot3_numero", Int64.Type}, {"lot3_surface_carrez", type number}, {"lot4_numero", type text}, {"lot4_surface_carrez", type text}, {"lot5_numero", type text}, {"lot5_surface_carrez", type text}, {"nombre_lots", Int64.Type}, {"code_type_local", Int64.Type}, {"type_local", type text}, {"surface_reelle_bati", Int64.Type}, {"nombre_pieces_principales", Int64.Type}, {"code_nature_culture", type text}, {"nature_culture", type text}, {"code_nature_culture_speciale", type text}, {"nature_culture_speciale", type text}, {"surface_terrain", Int64.Type}, {"longitude", type number}, {"latitude", type number}}),
    #"Autres colonnes supprimées" = Table.SelectColumns(#"Type modifié",{"id_mutation", "valeur_fonciere", "code_departement", "code_type_local", "surface_terrain"}),
    #"Lignes filtrées" = Table.SelectRows(#"Autres colonnes supprimées", each ([valeur_fonciere] <> null) and ([surface_terrain] <> null)),
    #"Valeur remplacée" = Table.ReplaceValue(#"Lignes filtrées",null,"None",Replacer.ReplaceValue,{"code_type_local", "valeur_fonciere", "surface_terrain"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Valeur remplacée",{{"valeur_fonciere", type number}, {"surface_terrain", type number}, {"code_type_local", type text}}),
    #"Lignes groupées" = Table.Group(#"Type modifié1", {"id_mutation"}, {{"code", each Text.Combine(List.Distinct([code_type_local]),", ")}, {"Toutes", each _, type table [id_mutation=nullable text, valeur_fonciere=nullable number, code_departement=nullable number, code_type_local=nullable text, surface_terrain=nullable number]}}),
    #"Lignes filtrées2" = Table.SelectRows(#"Lignes groupées", each ([code] = "None")),
    #"Toutes développé" = Table.ExpandTableColumn(#"Lignes filtrées2", "Toutes", {"valeur_fonciere", "code_departement", "code_type_local", "surface_terrain"}, {"Toutes.valeur_fonciere", "Toutes.code_departement", "Toutes.code_type_local", "Toutes.surface_terrain"})
in
    #"Toutes développé"

L'erreur provenait du GroupBy, qui ne déterminait apparemment pas bien le typage des données...
Le fichier : (pense à modifier le chemin d'accès du fichier "full.csv.gz"
 

Pièces jointes

  • pq_bennp_v2.xlsx
    89.8 KB · Affichages: 4

bennp

XLDnaute Occasionnel
Bonjour, super merci, j'ai été cherché directement le fichier sur internet https://files.data.gouv.fr/geo-dvf/latest/csv/2022/full.csv.gz

Merci pour la modif sur le Group By

Pensez vous qu'on peut modifier l'url source par https://files.data.gouv.fr/geo-dvf/latest/, je voudrais savoir si on peut s'assurer d'aller toujours récupérer le dernier fichier mis à jour.

Avec mon fichier de base, j'ai peur qu'un nouveau dossier arrive /2023 /2024, etc.
J'ai donc essayé de créer l'url pour toujours aller chercher la dernière année disponible, en revanche je n'arrive pas à utiliser l'url créée.

Pouvez vous regarder au niveau de la requête "full csv (2)" la 1ère étape svp ?
 

Pièces jointes

  • test2xlsx.xlsx
    18.6 KB · Affichages: 2

Cousinhub

XLDnaute Barbatruc
Bonjour,
Chez moi, ta requête "full csv(2)" fonctionne très bien...
(Il est vrai que plus de 3 800 000 lignes * 40 colonnes sont importées à la 3ème étape), mais cela ne génère pas de pb..
PS, il faut parfois cliquer sur le bouton "Actualiser" du ruban "Accueil" dans l'éditeur avancé, la mise à jour ne se faisant pas systématiquement...
 

bennp

XLDnaute Occasionnel
1689061793647.png

J'ai ce message d'erreur, même en actualisant

Il fallait modifier les paramètres de confidentialité dans les options.

Merci :)
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine