2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法こんにちは、みんな、
これらの 2 つのセルのパターン/テキストに基づいて、2 つのセル間のセル値を入力/置換しようとしています。 添付の画像とデータをご確認ください。
助けてください、ありがとう - HSS

スクリプティングRe: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法いくつかの質問:
- Current State Code 列のトリガーは静的ですか、それとも動的ですか?
- GUI ソリューションまたはスクリプト ソリューションをお探しですか?
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法こんにちは。
質問 - Current State Code 列のトリガーは静的ですか、それとも動的ですか?
答え - ダイナミック。
Ques - GUI ソリューションまたはスクリプト ソリューションをお探しですか?
答え - スクリプティング。
ありがとう
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法やあ@HSS 、
空の列に何を入力する必要があるかの例を挙げていただけますか? 列 Device_State の空のセルに何らかのテキストを入力したいようですが、画像からはテキストがどうあるべきかが明確ではありませんでした。 また、0アンペア、0.0001アンペアなど、適用された電流設定に基づいてテキストを変更したいようです。これは正しいですか?
Current_State_Code 列の情報が Device_State 列に入るテキストにどのように影響するかは、私にはわかりません。
ありがとう!、
DS
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法
どのように動的ですか? 一例を挙げられたので、変化をカバーする解決策を考えるのは難しいです。
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法やあ、
データ テーブルまたは画像の 4 番目の列「Required-Current_State_Code」列を作成しました。
「Contains()」コマンドを使用して 3 番目の列を作成しました。 これにより、空のセルの開始値と終了値を提供できます。
IF( 含む( :Current_State_Code, "amp" ), :Required-Current_State_Code = :Current_State_Code, )
そして、欠損値を埋めます。 同様に、「A = 0 アンペア」と「B = 0.0001 アンペア」の間に「初期化」を埋めます。 これらの充填値 (初期化、ランプ、熱など) は別のテーブルから取得されます。 しかし、「A = 0 アンペア」と「B = 0.0001 アンペア」の間の行数は固定されていないため、この電流値も固定されていません。 'B = 0.01 amp' となります。 これは、「amp」が含まれている必要があるということだけです。
これが役立つことを願っています。
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法動的手段 -
「A = 0 アンペア」と「B = 0.0001 アンペア」の間の行数。
実際、'A = 0 アンペア' と 'B = 0.0001 アンペア' も固定されていません。'AA = 0 アンペア' と 'BB = 0.8 アンペア' になる可能性があります。アンプ」。 埋める必要のある値は、別のテーブルから取得されます。
与えられたデータセットでは、
「A = 0 アンペア」と「B = 0.0001 アンペア」の間に「初期化」を入力します。
「B = 0.0001 アンペア」と「C = 0.001 アンペア」の間に「ランプ」を入力します。
等々。
これが役立つことを願っています。
ありがとう
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法提供されたサンプル データに基づいて、開始点のみを知る必要はありません。 正確な定義方法がわからないため初期化など、この例ではこれらを使用せず、Device_States の行番号を使用します。
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample_Data.jmp");
state_rows = Loc(dt[0, "Device_State"], "Applied_Current");
states_list = Transform Each({val}, As List(state_rows), Char(val));
/* we don't know how to define values which are to be mapped so we will just use row numbers */
current_states = Associative Array(dt[state_rows, "Current_State_Code"], states_list);
new_col = dt << New Column("State", Character, Nominal);
new_col << Set Each Value(
As Constant(
state = "";
ret_val = "";
);
If(:Device_State == "Applied_Current",
ret_val = :Current_State_Code;
state = current_states[ret_val];
,
ret_val = state;
);
ret_val;
);

Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法私が正しく理解していれば、このようなことがうまくいくかもしれません。 3 行目のリストを毎回正しいリストに変更する必要があります。ループは現在、最後のグループ化について何をすべきかわからないため、Try セクションがあります。 これが正しいアプローチである場合は、いくつかのより良い条件を使用して、Try セクションの必要性を取り除くことができます。 以下のスクリプトを使用して、サンプル データ テーブルを操作します。
dt = Data Table( "Sample_Data" );
lstStates = {"Initialization", "Ramp", "Heat", "Other"};
lstLocs = dt << Get Rows Where( Contains( :Current_State_Code, "amp" ) );
Try(
For Each( {i, j}, lstLocs,
For Each Row(
dt,
If( (Row() > lstLocs[j] & Row() < lstLocs[j + 1]),
:Current_State_Code = lstStates[j];
)
)
)
);
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法@Jed_Campbell
休暇中だったので返信が遅くなり申し訳ありません。はい、これでうまくいきます。
ありがとう、HSS
Re: 2 つのセルの特定の値に基づいて、2 つのセル間のテキストを入力/置換する方法@jthi
休職中でお返事遅くなり申し訳ありません。 これは、より一般的な方法のようです。 この方法で何かを実装しようとするか、使用します@Jed_Campbellのソリューションです。
ありがとう、HSS