如果多列包含字串,則傳回“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”多謝。這個公式非常有效。然而,我意識到我的數據有點複雜。
我有兩個目標詞,例如“你好”和“嗨”。在某些儲存格中,「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);
));