他の列のグループ化に基づく新しい列の作成こんにちは、みんな、
次の仕様に基づいて「Active」または「Replaced」を返す新しい列「Status」を作成しようとしています(「Status」列が期待される結果の図として表に添付されている部分)。
各ツールとサイトは、時間中に異なるSub_Toolを置き換え、そのタイムスタンプでいくつかのユニットを実行できます。特定のツールとサイトの最新のSub_Toolは、ステータス列でActiveを受け取り、そのツールとサイトで使用された以前のすべてのSub_ToolはReplacedを受け取ります。
添付されている例のように、同じSub_Toolは時間の経過とともに繰り返される可能性がありますが、最後の実行でのみアクティブとしてマークする必要があります。
実際のファイルには多くのツールがあり、各ツールには多くのサイトがあるため、堅牢なコーディングが必要です。
あなたの助けは大歓迎です。
Re:他の列のグループ化に基づく新しい列の作成あなたの定義を読んだところ、行36がアクティブと見なされていることがわかりましたが、行28から35にsave SubTool値があることがわかる以外は、これらの行をアクティブとしてマークする必要がある理由がわかりません。
または、あなたがやりたいことは、ツールとサイトに最後に使用されたサブツールを見つけて、サブツールが変更されたときに戻るすべての行をアクティブとしてマークするという単純な問題ですか?????
私は混乱していますRe:他の列のグループ化に基づく新しい列の作成こんにちは、
元のテーブルには、Sub_Toolで統計を計算する他の多くの列があるため、最後の行をAcitveとしてマークする必要があるだけでなく、最新のSub_Toolが実行されたバッチ全体をマークする必要があります。はい、私はする必要がありますツールとサイトで最後に使用されたSubToolを確認し、SubToolが変更されたときのすべての行をアクティブとしてマークします。
Re:他の列のグループ化に基づく新しい列の作成新しい列を計算する方法の1つを次に示します。 新しい文字列を作成し、以下の数式を新しい列に貼り付け、参照を「Active2」に変更して、作成した新しい列の名前を変更します。
If( Row() > 1,
If( :TOOL != Lag( :TOOL ) | :Site != Lag( :Site ) | Row() == N Rows( Current Data Table() ),
TargetValue = :Sub_Tool[Row() - 1];
:Active2[Row() - 1] = "Active";
For( i = Row() - 2, i >= 1, i--,
If( :Sub_Tool[i] == TargetValue,
:Active2[i] = "Active",
:Active2[i] = "Replaced";
Break();
)
);
)
);
If( Row() == N Rows( Current Data Table() ),
"Active",
"Replaced"
);
Re:他の列のグループ化に基づく新しい列の作成この問題を解決するための時間を割いていただきありがとうございます。提案されたスクリプトは、作成された列Sub_Tool_Statusに次の意図しないミスをもたらします。
1。 最新の行の値は置換された(黄色でマークされた添付ファイル行91)
2。 最新の行は空です(添付ファイルの最後の行)
2。 複数の置換がある場合、置換前の最後の行のみが置換され、前の行は更新されません(2つの緑色の色でマークされた添付ファイル)
Re:他の列のグループ化に基づく新しい列の作成より完全なテストファイルと私の最初のコードのテストをありがとうございます。
ここにフォーマットの新しいバージョンがあります
If( Row() > 1,
If( :TOOL != Lag( :TOOL ) | :SITE != Lag( :SITE ) | Row() == N Rows( Current Data Table() ),
TargetValue = :SUB_TOOL[Row() - 1];
:Active2[Row() - 1] = "Active";
For( i = Row() - 1, i >= 1, i--,
If( :SUB_TOOL[i] == TargetValue,
:Active2[i] = "Active",
Break()
)
);
)
);
If( Row() == N Rows( Current Data Table() ),
"Active",
"Replaced"
);
「Active2」のコードの列参照を、列に付ける列名に変更する必要があります。
今あなたへの私の質問は:
数式がどのように機能するか理解していますか?
そうでない場合は、コードを調べてコードについて質問する必要があるため、コードを理解し、将来必要になる可能性のある変更を加えることができます。