Hallo,
JSL: So erstellen Sie einen Verweis auf eine Tabellenvariable innerhalb einer Spaltenformel
Ich möchte ein benutzerdefiniertes Formelblatt erstellen, das ich ändern und auf die Datentabelle anwenden kann.
Sagen Sie, Sie haben ein Blatt im Anhang.
Formelblatt

und möchte diese Formel verketten, damit ich sie anwenden kann Wählen Sie wo.
Ich komme unten mit der Idee einer for-Schleife, kann aber nicht herausfinden, wie ich sie analysieren soll, um sie auszuwählen
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))
Ich würde mich freuen, wenn Administratoren dabei helfen könnten?
Hier ist meine Überarbeitung Ihres Skripts, um die Auswahl aus der Fahrzeugdatentabelle zu generieren.
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 ) );