Extraction d'informations d'une variable délimitée par des virgules<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Q: Est-il possible de chercher dans une variable délimitée par des virgules et d'extraire des informations?
Contexte: J'ai une liste de produits (5) associée à une variable multipunch et je souhaite examiner dans la variable, voir si la valeur associée à Product 4 (4) existe et si oui, étiqueter cette personne en tant qu'utilisateur.
Exemple de données:
| ID | Produits utilisés |
|---|
| 234241241 | 2,4,5 |
L'utilisation d'un simple IF (var == 4,1,0) ne fonctionne pas. Je pense qu’il cherche une réponse qui correspond parfaitement à ce qui est dans la cellule plutôt que de regarder le niveau existant dans toutes les données.
Évidemment, je pourrais reformater les données pour que chaque produit ait sa propre colonne, mais j'aimerais savoir s'il existe un moyen de contourner ce problème avec les fonctions de formule.
Je vous remercie!
Objet: Extraire des informations d'une variable délimitée par des virgulesIl y avait une petite erreur dans le code que j'ai corrigé ci-dessus.
Mais pour répondre à votre question, si vous deviez simplement le copier et le coller dans le champ de formule, collez ceci:
Si (! Est manquant (Regex (: Produits utilisés, "4")), "Vrai", "Faux")
La seule différence est la partie Colonne, car vous n'avez pas à définir votre table.
Objet: Extraire des informations d'une variable délimitée par des virgulesSi vous marquez votre colonne en tant que colonne à réponses multiples (c'est-à-dire, ajoutez la propriété Réponse multiple à la colonne), vous pouvez utiliser le filtre de données pour séparer les différentes valeurs.
par exemple,
Nouvelle table ( "tester" ,
Ajouter des lignes ( dix ) ,
Nouvelle colonne ( "Des produits" ,
Personnage ,
"Nominal" ,
Définir la propriété ( "Réponse multiple" , Réponse multiple (séparateur ( "," ))) ,
Définir des valeurs (
{ "1,2,4" , "1,3,4" , "2,3" , "2,4" , "1,2" , "4" , "1" , "3" , "1,4" , "1" }
)
) ,
Nouvelle colonne ( "Utilisateur" ,
Numérique ,
"Continu" ,
Format ( "Meilleur" , 12 ) ,
Définir les valeurs ([ 2 , 3 , 1 , 3 , 2 , 4 , 1 , 3 , 4 , 4 ])
)
) ;
Tableau de données actuel () << Filtre de données (
Emplacement( { 1166 , 73 }) ,
Ajouter un filtre (
colonnes ( : Des produits ) ,
Afficher( : Des produits , Taille( 53 , 77 ) , Affichage de la case à cocher)
)
) ;
Maintenant, vous pouvez utiliser le filtre de données pour sélectionner la catégorie d'intérêt.
Cela peut vous donner ce que vous voulez.
Objet: Extraire des informations d'une variable délimitée par des virgulesEssayez la fonction Contains ():
Contient ( : Produits utilisés , "4" ) > 0
Objet: Extraire des informations d'une variable délimitée par des virgulesJe vais tester cela. Je vous remercie.
Est-ce une formule qui fonctionnerait dans la fenêtre de dialogue de formule lors de la création d'une nouvelle colonne?
Objet: Extraire des informations d'une variable délimitée par des virgulesEn fait, je pense que vous voulez dire quelque chose de différent.
dt = table de données actuelle ();
dt << Nouvelle colonne ("Nom", Caractère, Nominal, Formule (! IsMissing (regex (Colonne (dt, "Produits utilisés") [], "4")), "Vrai", "Faux"));;
Ceci utilise des expressions régulières et recherche dans la colonne "Produits utilisés" un "4". S'il y a un 4, il crache Vrai dans la nouvelle colonne, sinon il crache "Faux"
Objet: Extraire des informations d'une variable délimitée par des virgulesSi je comprends bien, utilisez:
dt = table de données actuelle ();
dt << Nouvelle colonne ("Nom", Caractère, Nominal, Formule (Si (mots (Column (dt, "Produits utilisés") [[ Colonne (dt, "Produits utilisés") [], ","))));
Cela ajoute une nouvelle colonne "Nom" qui vérifie la colonne "Produits utilisés" si elle contient exactement 4 éléments séparés par des virgules. Si tel est le cas, le quatrième élément séparé par une virgule est défini comme valeur de la colonne.