Erstellen Sie eine neue Spalte und legen Sie jeden Zeilenwert aus einer anderen Spalte basierend auf einer anderen Spalte fest (Spaltenname variabel).Hallo,

Ich habe Daten ähnlich dem Beispiel im Bild. Die ersten sechs Spalten sind verknüpft. Ich habe MaxCol erstellt, um herauszufinden, wer das Maximum hat, das auf den ersten drei Spalten basiert. Anschließend möchte ich die Spalte MaxValFromCol erstellen, in der der Wert aus einer der Spalten 4-6 übernommen wird. Basierend auf MaxCol wird der Wert aus den Spalten 4-6 ausgewählt. Ich habe versucht, den Wert von MaxValFromCol mit Column(char(:MaxCol) || "_t") festzulegen, aber ohne Erfolg. Kann jemand einen Vorschlag machen, wie wir einen Spaltenwert als Spaltennamen nehmen und den Wert darauf basierend festlegen können?
Automatisierung und SkriptingBetreff: Neue Spalte erstellen und jeden Zeilenwert aus einer anderen Spalte basierend auf einer anderen Spalte festlegen (Spaltenname variabel)Hier ist die Formel, die ich für MaxCol entwickelt habe
As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names;
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) );
theMax = (theMax + startCol) - 1;
colNames[theMax][1];
und hier ist die Formel für MaxValFromCol
As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names();
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) )
+ncol;
Parse( Char( colNames[themax][1] ) );

Es ist spät in der Nacht und ich bin sicher, dass andere bessere Lösungen haben.
Betreff: Neue Spalte erstellen und jeden Zeilenwert aus einer anderen Spalte basierend auf einer anderen Spalte festlegen (Spaltenname variabel)Hallo Jim,
Ich kann MaxCol abrufen. MaxValFromCol soll den Wert aus Spalte 4-6 enthalten, nicht den Spaltennamen. Beispiel: Zeile 1 ist MaxCol =="Lily", dann übernimmt Zeile 1 von MaxValFromCol den Wert aus Lily_t, also 4|5. Zeile 2 ist 4|4, weil Zeile 2 von MaxCol Mike ist, also kommt 4|4 von Mike_t

Betreff: Neue Spalte erstellen und jeden Zeilenwert aus einer anderen Spalte basierend auf einer anderen Spalte festlegen (Spaltenname variabel)Ich denke, ich kann für nur wenige Spalten eine If-Bedingung wie unten verwenden, aber ich habe zu viele Spalten. Daher frage ich mich, ob es eine Möglichkeit gibt, den MaxCOl-Wert als Variable zum Aufrufen der Spalte zu verwenden.
wenn es nur wenige Spalten sind, kann Folgendes funktionieren:
if(:MaxCol =="Lily", :Lily_t,
:MaxCol =="Mike", :Mike_t,
:MaxCol =="Dan", :Dan_t,
)
Ich hoffe, dass ich etwas Einfaches wie unten habe, wenn ich Hunderte von Spalten habe
MaxValFromCol == Spalte(char(:MaxCol)||"_t")
Betreff: Neue Spalte erstellen und jeden Zeilenwert aus einer anderen Spalte basierend auf einer anderen Spalte festlegen (Spaltenname variabel)Mein Fehler … spät in der Nacht … ich werde ihn korrigieren.
Hier sind die 2 Formeln, die bei mir funktionieren

As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names( string );
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) );
theMax = (theMax + startCol) - 1;
x = colNames[theMax][1];
x;
As Constant(
startCol = 1;
endCol = 3;
nCol = (endCol - startCol) + 1;
dt = Current Data Table();
colNames = dt << get column names( string );
);
theMax = Loc( dt[Row(), Index( startCol, endCol )], Max( dt[Row(), Index( startCol, endCol )] ) )
+ncol;
Eval( Parse( "x=:" || colNames[theMax][1] ) );
Betreff: Neue Spalte erstellen und jeden Zeilenwert aus einer anderen Spalte basierend auf einer anderen Spalte festlegen (Spaltenname variabel)Ich bin mir nicht sicher, ob ich so etwas verwenden würde, aber es könnte funktionieren
As Column(Column(:Column 1 ||"_t"))
Sie können höchstwahrscheinlich auch die Spalte () löschen
As Column(:Column 1 || "_t")