你好,
我找不到以下問題的解決方案。
我有 2 列,都包含文本。 我想創建一個新列來告訴我第 2 列中的文本是否可以在第 1 列中找到。
我怎樣才能做到這一點 ? 我從 Excel 開始,但似乎太複雜了。
例子 :
Col1 是整個列表
Col2 是我想在 col1 中找到的文本。
Col3 會告訴我是否可以在 col1 的列表中找到同一行 col2 中的文本
| col1 | col2 | col3 |
| GCF055.TOP | FCN4222 | 未找到 |
| SCF015.DOWN | FCNV4222 | 成立 |
| SCFCNV422.TOP | FCNV4222FF | 未找到 |
| SCF866.TOP | GCF009 | 成立 |
| SCGCF009.DOWN | | |
| SCF866.UP | | |
| SCF015.UP | | |
謝謝你的幫助。
希望我的問題足夠清楚。
這是解決此問題的一種方法,使用列公式。創建一個字符列,然後將其粘貼到該列的公式中。

x = "not found";
For( i = 1, i <= N Rows( Current Data Table() ), i++,
If( Contains( :col1[i], :col2[Row()] ),
x = "found";
Break();
)
);
x;
請注意,您的示例數據表第 2 行的條目不正確。在 co1 的任何行中都找不到 FCNV4222。第 3 行值包含 FCNV422 但不包含 FCNV4222
有很多方法可以做到這一點,解決方案將根據是否需要高性能而有所不同。 下面是一個示例,使用關聯數組獲取唯一值,連接項以生成要比較的字符串,然後包含以查找匹配項。
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"
);
,
""
);
));