Type de cellule, null "" , 0 rien

Accueil – Le CFO masqué Forums Power Query Type de cellule, null "" , 0 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.
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Articles
  • #63317
    philippe.muniesa
    Participant

    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

    #63318
    Sophie Marchand
    Participant

    Bonjour,

    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

    #63347
    Stéphane Lorin
    Participant

    Bonjour

    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.
    #63351
    philippe.muniesa
    Participant

    Stéphane,

    Super, merci pour le tuyau,

    J’essaie ça dans la journée.

    Philippe

    #63422
    philippe.muniesa
    Participant

    Sté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

    #63467
    Stéphane Lorin
    Participant

    Bonjour

    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

6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.