Forループで数式内の列番号で列を参照するこんにちは、みんな、
私は "for"ループを使用して新しい列の束を一度に生成しようとしています、そして各列は "sample"マトリックスの次の項目として命名されるでしょう。私はその部分を理解することができます、と思います。しかし、私はまた、各列に異なる列を調べるための式を含めておき、それは毎回異なり、初期値(列 "0")からその値を引きます。これを実行すると、式の評価エラーが発生するだけで、列が参照する必要があるものは計算されません。
ご協力いただきありがとうございます!
sample = {0, 1, 2, ...}
new columns = N Items (sample);
for( i=1, i<= new columns, i++, col = num(sample [i]);
dt << New Column (sample [i] || " Days", formula (as column (13+i+new columns) - :Name("0")))
);Forループ内の式の列番号で列を参照するどうもありがとうございます!!
Forループ内の式の列番号で列を参照する私の誤り 引用符のペアを取り除くために文字列を解析する必要があります。
Names Default To Here( 1 );
dt = Current Data Table();
sample = {0, 1, 2};
new columns = N Items( sample );
For( i = 1, i <= new columns, i++,
col = Num( sample[i] );
colNamesList = dt << Get Column Names;
Wait( 0 );
Eval(
Substitute(
Expr(
dt << New Column( sample[i] || " Days",
formula( __column__ - :Name( "0" ) )
)
),
Expr( __column__ ),
Parse(":Name(\!"" || colNamesList[13 + i + new columns] || "\!")")
)
);
);Forループ内の式の列番号で列を参照するご協力ありがとうございました!!この解決策はほとんどうまくいきます - しかし私は最後の1つの問題にとどまっています。
現在のところ、作成されたスプレッドシートから次の式が得られます。
":Name(\!"5\!")" - 0
前半は "5"という列を参照し、後半は "0"という列を参照するようにします。私が何をしても、前半部分だけを表示することはできません。名前( "5")です。引用符を再フォーマットしたり移動したりすると、そのテーマのバリエーションが表示されます。
再度、感謝します!
Forループ内の式の列番号で列を参照するあなたの現在の式の問題は、変数 "i"と "New Columns"です。 あなたが仮定しているのは、計算が最終計算に評価されてからAs Column()関数に入れられるということです。 問題は、数式に配置されるものが列として(13 + i +新しい列)であることです。 そのため、式が実行されると、列を作成したときに "i"と "new columns"の値はありませんが、式を計算または再計算するときはいつでも値が使用されます。 そして、"i"と "New Columns"はスクリプト内で変化しているので、問題があります。 これで、式を定義する前に式を変更して計算を実行してから、列番号を式に代入できます。 ただし、これに関する問題は、列番号を使用することによって、テーブル内の列が移動または削除された場合、式の列番号が変更されず、したがって計算が正しくなくなることです。 代わりに、実際の列名を式に代入することをお勧めします。 以下のスクリプトは、そのためのアプローチを示しています。
Names Default To Here( 1 );
dt = Current Data Table();
sample = {0, 1, 2};
new columns = N Items( sample );
For( i = 1, i <= new columns, i++,
col = Num( sample[i] );
colNamesList = dt << Get Column Names;
Wait( 0 );
Eval(
Substitute(
Expr(
dt << New Column( sample[i] || " Days",
formula( __column__ - :Name( "0" ) )
)
),
Expr( __column__ ),
":Name(\!"" || colNamesList[13 + i + new columns] || "\!")"
)
);
);