如何根据单元格中包含的关键字用数字替换文本字符串

How do I replace a text string with a number, based on a key word contained in the cell

我有一个带有短文本字符串的字符串变量。我想根据单个单元格中包含的关键字将所有文本字符串替换为数字。

示例:一些单元格状态为 "I like cats",而其他单元格状态为 "I dont like the smell of wet dog"。

我想将值 1 分配给所有包含单词 cat 的单元格,将数字 2 分配给所有包含单词 dog 的单元格。

我该怎么做?

显然您必须打开语法 window 并输入此命令:

COMPUTE newvar=CHAR.INDEX(UPCASE(VAR1),"ABCD")>0

newvar 是新变量的名称。 VAR1 是要搜索的变量的名称。 ABCD 是要搜索的文本。 注意:这必须是大写字母。

如果找到文本,newvar 将收到值 1。

这将在 OldVar 中出现“猫”时将 1 放入 NewVar,将“狗”放入 2,将“老鼠”放入 3:

do repeat wrd="cat" "dog" "mouse"/val= 1 2 3.
  if index(OldVar, wrd)>0 NewVar=val.
end repeat.

只有在同一句话中永远不会有猫和狗的情况下,这才是好的。如果你确实有这样的情况,你应该这样做:

do repeat wrd="cat" "dog" "mouse"/NewVar=cat dog mouse.
  compute NewVar=char.index(OldVar, wrd)>0.
end repeat.

这将为每个可能的词创建一个新变量,如果该词出现在 OldVar 中,则为 1,否则为 0。