我有一个充满句子的文档,以及我想从句子中提取的单词列表。剩下的几个字,我想删掉。 我怎样才能做到这一点?也欢迎应用脚本建议。
我想要的话 | 句子 | 想要的结果 |
---|---|---|
苹果 | 熊吃了树上的一个苹果。 | 熊,苹果,向上 |
熊 | 我喜欢土豆 | |
向上 | 你讨厌苹果派吗? | 苹果 |
我去了苹果树上 | 向上,树 |
提前谢谢您!
我可以去掉标点符号,把句子改成逗号分隔的句子。 (例如句子:“the bear ate an apple up the tree.”-->“the,bear,ate,an,apple,up,the,tree”)但是我无法删除我没有列出的单词出来了。
我尝试过 regexextract,但它只提取第一个匹配项。如果一个单元格中有多个匹配项,则它将不起作用。 我无法进行替换,因为我不知道我不想要哪些单词,因为句子非常不同。我只想选几句话。我还需要它区分大小写。例如。如果这个词有大写字母,我不想要它。如果句子中没有一个单词符合我想要的,我只需要一个空白,或者一个写着“all good”的注释。
我才到这一步 = textjoin(",",true,split(REGEXREPLACE( C9,"[!@#$%^&*().,。]","")," "))
此公式检查“我想要的单词”列中的单词是否出现在“字符串/句子”列中,如果出现,则会将这些匹配的单词作为逗号分隔列表粘贴到“所需输出”列中。如果您想添加更多单词,请调整
range (A$2:A$4)
。
请尝试将此代码粘贴到“所需输出”列上,以检查它是否在您的端正常工作:
=TEXTJOIN(",", TRUE, FILTER(SPLIT(A$2:A$4, ", "), ARRAYFORMULA(LEN(REGEXEXTRACT(LOWER(B2), "\b" & LOWER(TRIM(SPLIT(A$2:A$4, ", "))) & "\b")) > 0)))
这个公式将获取您输入
$A$1:A$6
中的单词,然后将其转换为小写并删除标点符号以进行比较,然后将其拆分为字符串,然后匹配“C3”中的单词,然后我使用 TextJoin
以便它加入过滤和匹配的单词来得出您想要的结果。
=TEXTJOIN(",", TRUE, FILTER(SPLIT(REGEXREPLACE(LOWER(C3), "[^\w\s]", ""), " "), ISNUMBER(MATCH(SPLIT(REGEXREPLACE(LOWER(C3), "[^\w\s]", ""), " "), LOWER($A$3:$A$6), 0))))
注意:根据您的需要调整范围。