新しい列を作成し、別の列(列名変数)に基づいて異なる列の各行の値を設定します。こんにちは、

画像の例のようなデータがあります。最初の6列は関連しています。最初の3列に基づいて誰が最大値を持っているかを調べるためにMaxColを作成しました。次に、4~6列のいずれかの値を取得するMaxValFromCol列を作成したいと考えています。この列はMaxColに基づいて4~6列から値を取得します。Column(char(:MaxCol) || "_t")を使用してMaxValFromColの値を設定しようとしましたが、うまくいきませんでした。列名として列の値を取得し、それに基づいて値を設定する方法について、何かアドバイスをいただけないでしょうか?
自動化とスクリプトRe: 新しい列を作成し、別の列に基づいて異なる列から各行の値を設定します(列名変数)これが私がMaxColのために考え出した式です
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];
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] ) );

夜も遅いですし、他の人がもっと良い解決策を持っていると確信しています。
Re: 新しい列を作成し、別の列に基づいて異なる列から各行の値を設定します(列名変数)こんにちは、ジム。
MaxColは取得できました。MaxValFromColに取りたいのは、列名ではなく、列4~6の値です。例えば、行1のi MaxCol =="Lily"の場合、MaxValFromColの行1はLily_tから値4|5を取得します。行2は4|4です。これは、MaxColの行2がMikeであるため、Mike_tから4|4が取得されるからです。

Re: 新しい列を作成し、別の列に基づいて異なる列から各行の値を設定します(列名変数)列数が少ない場合は、以下のようなif条件式を使えると思うのですが、列数が多すぎます。MaxCOl値を変数として使って列を呼び出す方法はあるでしょうか?
列が少ない場合は、以下が機能します。
if(:MaxCol =="Lily", :Lily_t,
:MaxCol =="マイク", :Mike_t,
:MaxCol =="ダン", :Dan_t,
)
何百もの列がある場合、以下のようなシンプルなものが欲しいです
MaxValFromCol == 列(char(:MaxCol)||"_t")
Re: 新しい列を作成し、別の列に基づいて異なる列から各行の値を設定します(列名変数)私のミスです……夜遅くに……訂正します。
私が使っている2つの式は次のとおりです

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] ) );
Re: 新しい列を作成し、別の列に基づいて異なる列から各行の値を設定します(列名変数)このようなものを使うかどうかは分かりませんが、うまくいくかもしれません
As Column(Column(:Column 1 ||"_t"))
おそらくColumn()を削除することもできます
As Column(:Column 1 || "_t")