J'essaie d'ajouter une nouvelle colonne qui utilise plusieurs conditions If pour vérifier si une colonne particulière contient un texte spécifique, des nombres formatés sous forme de texte ou de valeurs textuelles.

La condition If ci-dessous ne fonctionne que pour les 2 premiers critères, mais l'ajout d'un troisième critère de vérification ne donne pas les résultats NULL souhaités pour les valeurs numériques formatées en texte.

===============================
ColumnToCheck       | NewColumn
===============================
R0                  |  Questions
Is this my life?    |  Is this my life?
0.5445              |  null
0.23                |  null
0.23335             |  null
===============================

La formule est:

= Table.AddColumn(PreviousStep, "NewColumn", 
    each    
if 
       Value.Is([ColumnToCheck],Text.Type) and not Text.Contains([ColumnToCheck],"R0") then 
     [ColumnToCheck] 
else if 
  Text.Contains([ColumnToCheck],"R0", Comparer.OrdinalIgnoreCase) then 
     "Questions" 
else if 
Value.Is(Number.FromText([ColumnToCheck]),type number) then 
     null 
else 
     null)
1
sifar 14 oct. 2020 à 16:30

1 réponse

Meilleure réponse

Peut-être que vous avez besoin de quelque chose comme ça

 if
    try Value.Is(Number.FromText([ColumnToCheck]), type number) otherwise Value.Is([ColumnToCheck],type number)  
then 
    null 
else 
    if 
       Value.Is([ColumnToCheck],Text.Type) and not Text.Contains([ColumnToCheck],"R0") 
    then 
        [ColumnToCheck] 
    else 
        if 
            Value.Is([ColumnToCheck],Text.Type) and  Text.Contains([ColumnToCheck],"R0", Comparer.OrdinalIgnoreCase) 
        then 
            "Questions" 
        else 
            null

Le résultat en PQ ressemble à

enter image description here

1
Storax 14 oct. 2020 à 14:45