Accueil – Le CFO masqué › Forums › Power Query › Type de cellule, null "" , 0 rien
Mots-clés : null 0 zéro vide "rien"
- Ce sujet contient 5 réponses, 3 participants et a été mis à jour pour la dernière fois par Stéphane Lorin, le il y a 4 années et 5 mois.
-
AuteurArticles
-
12 avril 2020 à 11 h 53 min #63317philippe.muniesaParticipant
Bonjour,
Dans les requêtes PowerQuery, on récupère souvent des cellules null.
D’après ce que je comprends cela signifie une cellule vide..
Le problème est qu’avec ce type de cellule, les concaténations ou opérations arithmétiques ne semblent pas fonctionner.(à l’inverse d’excellents lui même ou une cellule vide n’est pas un obstacle à son utilisation dans le cadre d’une formule)
Je m’explique:
soit une cellule null et sur la même ligne une cellule contenant A dans une autre colonne, la concaténation des deux cellules retourne null, alors qu’on s’attend au retour A
Soit une cellule null et sur la même ligne une cellule contenant 100 dans une autre colonne, l’addition des deux cellules retourne null alors qu’on s’attend à un retour de 100.
Pour que les opérations fonctionnent correctement, il faut remplacer les null par “rien” pour les colonnes TEXTE, et remplacer les null par 0 pour les colonnes numériques.
Quelqu’un peut-il me dire si ce fonctionnement “curieux” de powerQuery peut être contourné pour si il est possible d’éviter ces remplacements des cellules null.
Accessoirement quelle est la différence entre une cellule contenant null et une cellule ou null a été remplacé par “rien”.
Merci d’avance.
Cordialement
Philippe Muniesa
12 avril 2020 à 12 h 07 min #63318Sophie MarchandParticipantBonjour,
Une valeur null est retournée quand il n’existe aucun champ dans la source. Ce faisant, on ne peut pas conclure que la valeur de ce champ est 0 et on ne peut pas conclure non plus qu’il s’agit d’un champ texte ou numérique. C’est simplement un champ absent. Donc, oui, on doit pouvoir le remplacer par autre chose si on souhaite l’utiliser en combinaison avec d’autres champs, ce qui pourra lui conférer le type numérique ou textuel éventuellement.
Les champs null ont plusieurs utilités dans Power Query, comme par exemple, à l’intérieur des fonctionnalités de remplissage vers le haut et le bas. Il faut donc les considérer comme un atout de plus et non comme une bizarrerie.
Sophie
14 avril 2020 à 3 h 14 min #63347Stéphane LorinParticipantBonjour
Vous pourriez éventuellement utiliser la fonction Text.Combine au lieu du “&” pour concaténer des champ sans tenir compte des “null” : Text.Combine({[Colonne1],[Colonne2]},””)
La fonction List.Sum ne tient pas compte des “null”. Avec cette fonction, 3 + null = 3 et null – 4 = -4
Pour l’addition : List.Sum({[Colonne3],[Colonne4]})
Pour la soustraction : List.Sum({[Colonne3],-[Colonne4]})Attention, pour les produits et les divisions, List.Product assimile les “null” à des 1 donc 3 * null = 3 et null / 4 = 0,25
Pour un produit : List.Product({[Colonne3],[Colonne4]})
Pour une division : List.Product({[Colonne3],1/[Colonne4]})Stéphane
Attachments:
You must be logged in to view attached files.14 avril 2020 à 5 h 16 min #63351philippe.muniesaParticipantStéphane,
Super, merci pour le tuyau,
J’essaie ça dans la journée.
Philippe
14 avril 2020 à 14 h 00 min #63422philippe.muniesaParticipantStéphane et Sophie,
Merci à vous deux.
Tip Top ces fonctions qui permettent d’éviter des modifications de table (remplacement de null par 0 ou par (rien)),
Maintenant que null soit considéré comme 1 avec List.Product et qu’il ne puisse tout simplement être considéré comme un champ vide (puisque par ailleurs Vide = 0 ou rien) me laisse toujours aussi perplexe.Dans Excel une cellule vide = 0 ou rien, elle peut être utilisée en tant que tel dans des opérations arithmétiques ou dans des concaténations. Le remplissage automatique des cellules vides dans Excel fonctionne à peu près comme remplir vers .. avec les champs null.
Bon, il suffit de le savoir, mais microsoft pourrait avoir la bonne idée d’harmoniser les principes de base entre Power Query et Excel.
Cordialement
Philippe
16 avril 2020 à 2 h 42 min #63467Stéphane LorinParticipantBonjour
Ces fonctions List.Sum et List.Product ne tiennent pas compte des éléments “null”, elles ne les considèrent pas dans l’opération d’addition ou de multiplication. Les éléments non nulls de la liste sont additionnés ou multipliés.
Je voulais donc dire que c’était comme si ces “nulls” étaient “neutres” dans l’opération et, si je me souviens bien de mes cours d’algèbre, l’élément neutre de l’addition est 0 et celui de la multiplication est 1.Détrompez-vous sur un comportement différent entre Excel et Power Query.
Vous pouvez facilement faire un parallèle entre List.Sum et SOMME (bien qu’il y ait quand même des différences)
Par contre pour List.Product il faut penser à la fonction PRODUIT et non à la multiplication classique.Sûrement méconnue, cette fonction PRODUIT ne tient pas compte non plus des cellules vides : elle multiplie entre-eux les arguments numériques.
Essayez sous Excel : A1 = 3 et laissez vide la cellule A2
La formule =A1*A2 donnera 0, l’opérateur * transforme le “vide” en 0
Alors que la formule =PRODUIT(A1:A2) donnera 3, cette fonction ne tient pas compte des cellules vides.Stéphane
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.