如果多列包含字符串,则返回“True”或“False”你好,
如果任何列数据包含“hello”,我想返回“False”,否则返回“True”

我只能处理 1 列,如果有什么想法吗?
自动化和脚本编写回复:如果多列包含字符串,则返回“True”或“False”这是我的方法,它增加了设置范围的能力。
If( Row() == 1,
dt = Current Data Table();
rangelow = 2;
rangehigh = 14;
);
If( Contains( dt[Row(), Index( rangelow, rangehigh )], "hello" ),
"False",
"True"
);
我附上了一个示例数据表,其中的公式已嵌入到列中。我还包括了@jthi名为 Scan_RESULT 的新列中的响应

回复:如果多列包含字符串,则返回“True”或“False”你好,
我尝试了该公式,但它只是空白。 有没有办法像excel一样做到这一点=IF(COUNTIF(R21602:AC21602,"HELLO")>0,"FALSE","TRUE"),我们只能针对特定范围的列来检查“Hello”?
公式:
dt << 新列("Scan_RESULT", 字符, 名义公式(If(N Items(Loc(dt[Row(), 1::N Cols()], "hello")) > 0)),
“错误的”
,
“真的”
);
回复:如果多列包含字符串,则返回“True”或“False”您将创建新公式特点柱子在 JMP (jmp.com) 中创建公式作为数据表中的最后一列,然后复制粘贴我提供的公式。 之后,您可以通过双击列标题重新打开列属性,并根据需要删除公式。 如果您有 JMP16 增强日志,则应该为您提供执行此操作的脚本(如果需要)。
我在上一篇文章中多了一个“,”(我会将其编辑掉):
If(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0,
"FALSE"
,
"TRUE"
);
回复:如果多列包含字符串,则返回“True”或“False”就Excel而言,这是我的公式:
=IF(COUNTIF(R21602:AC21602,"你好")>0,"假","真")
回复:如果多列包含字符串,则返回“True”或“False”你好,
我有一组包含几千行的数据,但需要使用 jmp 脚本对数据进行后处理。 到目前为止,我的脚本已经过滤掉了所有噪音。 只需要知道如何实施您提供的解决方案
回复:如果多列包含字符串,则返回“True”或“False”有很多方法可以做到这一点。 您是否需要公式、设置值是否足够、是否需要 JSL、交互式解决方案?
这是一个可能的公式,但我会在计算一次后将其删除,因为它不会以与公式通常类似的方式重新计算(在这种情况下,这可能不是问题)。
If(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0,
"FALSE"
,
"TRUE"
);

该脚本应该给出一些额外的解释,但它不会为您创建新的列。 打开日志并运行它,您还可以将 Row() = 1 更改为 Row() = 2 等等,以查看它在不同行上的行为
Names Default To Here(1);
dt = New Table("Untitled 9",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 2", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 3", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 4", Character, "Nominal", Set Values({"hello", "hello", "bye"})),
New Column("Column 5", Character, "Nominal", Set Values({"hello", "bye", "bye"}), Set Display Width(75)),
New Column("Column 6", Character, "Nominal", Set Values({"hello", "bye", "bye"}))
);
Row() = 1;
Show(Current Data Table()[Row(), 1::N Cols()]);
Show(Loc(Current Data Table()[Row(), 1::N Cols()], "hello"));
Show(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")));
Show(N Items(Loc(Current Data Table()[Row(), 1::N Cols()], "hello")) > 0);

编辑:
从公式中删除了多余的“,”
回复:如果多列包含字符串,则返回“True”或“False”如果我有兴趣获得“hello”在这个col范围内出现的次数怎么办?
还有另一种情况——如果单词“hello”是某个列的单元格中文本的一部分,该怎么办?
回复:如果多列包含字符串,则返回“True”或“False”1. 你可以使用 Loc 检查匹配项
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
N Items(Loc(dt[Row(), Index(rangelow, rangehigh)], "hello"));
2. 我假设你想知道“hello”在该范围内出现了多少次。循环+包含或替换+长度是选项
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
str = Concat Items(dt[Row(), Index(rangelow, rangehigh)], " ");
new_str = Substitute(str, "hello", "");
(Length(str) - Length(new_str)) / Length("hello")
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
res = Filter Each({val}, dt[Row(), Index(rangelow, rangehigh)], Contains(val, "hello"));
N Items(res);
查看更多...
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 2", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 3", Character, "Nominal", Set Values({"hello", "hello", "bye"})),
New Column("Column 4", Character, "Nominal", Set Values({"hello", "a hello a", "bye"})),
New Column("Column 5", Character, "Nominal", Set Values({"hello", "bye", "bye"}), Set Display Width(75)),
New Column("Column 6", Character, "Nominal", Set Values({"hello", "bye", "bye"}))
);
dt << new column("hellocount", numeric, continuous, formula(
If( Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
N Items(Loc(dt[Row(), Index(rangelow, rangehigh)], "hello"));
));
dt << new column("hellocountwithin", numeric, continuous, formula(
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
str = Concat Items(dt[Row(), Index(rangelow, rangehigh)], " ");
new_str = Substitute(str, "hello", "");
(Length(str) - Length(new_str)) / Length("hello");
));
dt << new column("hellocountwithin2", numeric, continuous, formula(
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
res = Filter Each({val}, dt[Row(), Index(rangelow, rangehigh)], Contains(val, "hello"));
N Items(res);
));
回复:如果多列包含字符串,则返回“True”或“False”非常感谢。公式运行完美。不过,我意识到我的数据有点复杂。
我有两个目标词,例如“hello”和“Hi”。在某些单元格中,“Hi”可能出现两三次,而在其他单元格中,“Hello”和“Hi”可能同时出现。我需要计算包含这两个词的单元格的数量 — 无论这两个词在其中出现多少次,每个单元格都只应计算一次。
回复:如果多列包含字符串,则返回“True”或“False”我想这就是你要找的

您已经基本得到了答案,选择“正确”的“公式”(这些公式不会动态评估)并添加对“嗨”的额外检查
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(3),
New Column("Column 1", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 2", Character, "Nominal", Set Values({"hello", "bye", "bye"})),
New Column("Column 3", Character, "Nominal", Set Values({"hello", "hello", "bye"})),
New Column("Column 4", Character, "Nominal", Set Values({"hello", "a hello a", "bye"})),
New Column("Column 5", Character, "Nominal", Set Values({"hello", "bye", "bye"}), Set Display Width(75)),
New Column("Column 6", Character, "Nominal", Set Values({"hello hello hi", "hi hi hi hi", "bye"}))
);
dt << new column("C", numeric, continuous, formula(
If(Row() == 1,
dt = Current Data Table();
rangelow = 1;
rangehigh = 6;
);
res = Filter Each({val}, dt[Row(), Index(rangelow, rangehigh)], Contains(val, "hello") | Contains(val, "hi"));
N Items(res);
));