Analyser des chaînes créant une condition de filtre à partir d'Excel et l'appliquant à datatableSalut,
JSL : comment créer une référence à une variable de table dans une formule de colonne
Je souhaite créer une feuille de formule personnalisée que je peux modifier et appliquer au tableau de données.
Disons avoir une feuille en forme de pièce jointe.
Feuille de formule

et j'aimerais concaténer cette formule afin de pouvoir postuler à sélectionnez où.
Je viens avec l'idée de boucle ci-dessous mais je n'arrive pas à comprendre comment l'analyser pour sélectionner où
dt = open("$SAMPLE_DATA/Cars.jmp")
formula_Sheet = open("C:\Formula_Sheet.xlsx",
Worksheet Settings(
1,
Has Column Headers( 1 )
));
condition_list = {}
For( i = 1, i <= Nrows( formula_Sheet ), i++,
Make_col = formula_Sheet:Name("column_name")[i] ;
filter_state = formula_Sheet:Name("filter_state")[i] ;
filter_1 = formula_Sheet:Name("filter_1")[i] ;
combined_filter_cond[i] = select where(:Name(\!""||Make_col[i]||"\!")"\!||Filter_state"\!||Filter_1"\!)";
condition_list = insert(combined_filter_cond[i])
));
<BR />//This is the final selection code should look like
dt << selectwhere((contains(:Name("Make"), "Honda") | !contains(:Name("D/P"), "Driver") | :Name("doors")>=2))
J'apprécierais que les administrateurs puissent m'aider à ce sujet ?
Personnalisation de masseRe : Analyser des chaînes créant une condition de filtre à partir d'Excel et l'appliquant à datatableSalut Jim,
C'est exactement la solution que je recherche. Merci beaucoup d'être venu et d'avoir apporté une solution à ce problème tard dans la nuit. Vous êtes un véritable expert !Re : Analyser des chaînes créant une condition de filtre à partir d'Excel et l'appliquant à datatableVoici ma refonte de votre script, pour générer les sélections à partir de la table de données des voitures.
names default to here(1);
dt = open("$SAMPLE_DATA/Cars.jmp");
formula_Sheet = open("C:\Formula_Sheet.xlsx",
Worksheet Settings(
1,
Has Column Headers( 1 )
));
//formula_Sheet =data table("DATA_for_SAS_community");
theExpr = "dt << selectwhere(";
For( i = 1, i <= N Rows( formula_Sheet ), i++,
If( formula_Sheet:column_name[i] != "",
If( i > 1,
theExpr = theExpr || "| "
)
);
If( Contains( formula_Sheet:filter_state[i], "contain" ),
theExpr = theExpr || formula_Sheet:filter_state[i] || "s(:Name(\!"" || formula_Sheet:column_name[i] || "\!"), \!"" || formula_Sheet:Filter_1
[i] || "\!")",
theExpr = theExpr || ":Name(\!"" || formula_Sheet:column_name[i] || "\!") " || formula_Sheet:filter_state[i] || formula_Sheet:Filter_1[i]
);
);
theExpr = theExpr || ");";
Eval( Parse( theExpr ) );