やあ、
次の問題の解決策が見つかりません。
2 つの列があり、両方にテキストが含まれています。 列 2 のテキストが列 1 にあるかどうかを知らせる新しい列を作成したいと思います。
これどうやってするの ? Excel から始めましたが、複雑すぎるようです。
例 :
Col1 はリスト全体です
Col2 は、col1 で検索したいテキストです。
Col3 は、同じ行の col2 のテキストが col1 のリストにあるかどうかを教えてくれます
| col1 | col2 | col3 |
| GCF055.TOP | FCN4222 | 見つかりません |
| SCF015.DOWN | FCNV4222 | 見つかった |
| SCFCNV422.TOP | FCNV4222FF | 見つかりません |
| SCF866.TOP | GCF009 | 見つかった |
| SCGCF009.DOWN | | |
| SCF866.UP | | |
| SCF015.UP | | |
ご協力いただきありがとうございます。
私の質問で十分に明確であることを願っています。
迅速なご返信ありがとうございます。
注:あなたは正しいです。 私の例は完全には正しくありませんでした。
これを行うには多くの方法があり、高いパフォーマンスが必要かどうかによってソリューションが異なります。 以下は、連想配列を使用して一意の値を取得し、項目を連結して比較対象の文字列を作成し、Contains を使用して一致を探す一例です。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(7),
New Column("col1",
Character,
"Nominal",
Set Values({"GCF055.TOP", "SCF015.DOWN", "SCFCNV422.TOP", "SCF866.TOP", "SCGCF009.DOWN", "SCF866.UP", "SCF015.UP"})
),
New Column("col2", Character(16), "Nominal", Set Values({"FCN4222", "FCNV4222", "FCNV4222FF", "GCF009", "", "", ""})),
New Column("col3", Character(16), "Nominal", Set Values({"not found", "found", "not found", "found", "", "", ""}))
);
dt << New Column("Found", Character, Nominal, << Formula(
If(Row() == 1,
col_vals = Associative Array(:col1 << get values) << get keys; // to eliminate dublicates
search_str = Concat Items(col_vals, " "); // should use some character not found as separator
);
If(!IsMissing(:col2),
If(Contains(search_str, :col2),
"found",
"not found"
);
,
""
);
));列式を使用して、これにアプローチする 1 つの方法を次に示します。文字列を作成し、これを列の式に貼り付けます。

x = "not found";
For( i = 1, i <= N Rows( Current Data Table() ), i++,
If( Contains( :col1[i], :col2[Row()] ),
x = "found";
Break();
)
);
x;
行 2 のサンプル データ テーブルのエントリが正しくないことに注意してください。FCNV4222 は、co1 のどの行にも見つかりません。行 3 の値には FCNV422 が含まれていますが、FCNV4222 は含まれていません