我知道如何在Excel中计算一系列关键字。我用这个公式:
=SUMPRODUCT(--ISNUMBER(SEARCH($CE$2:$CE$43,(G2:AP2))))但是,如果我想计算所选行中仅存在于+/-3单词中的“危险”的关键字的数量,Excel公式将是什么?
考虑这句话:“政治不确定性产生的经济风险使经济活动停滞。”如果我的关键字是political、uncertainty、stagnates和economic,那么" risk“周围+/- 3个单词内的关键字总数将为4,即uncertainty、stagnates和economic。“经济”在句子中出现了两次。political将被排除在外,因为它超出了范围。
发布于 2022-09-27 15:23:27
你可以试试:

E1中的公式
=SUM(--ISNUMBER(MATCH(FILTERXML("<t><s>"&SUBSTITUTE("a a a "&A1," ","</s><s>")&"</s></t>","//s[following::s[4]='risk']/following::*[position()<8]")&"*",C1:C4,0)))这样做的目的是:
"<t><s>"&SUBSTITUTE("a a a "&A1," ","</s><s>")&"</s></t>" -创建一个使用XPath1.0处理的有效xml-一个有效的XPath1.0表达式,仅检索中间有"<t><s>"&SUBSTITUTE("a a a "&A1," ","</s><s>")&"</s></t>"的多达七个节点。更详细的是://s[following::s[4]='risk']将得到一个节点,其右边的4个索引上的以下同级将等于risk (区分大小写),然后我们从/following::*位置获取所有的兄弟姐妹,在该位置上,我们将返回的节点限制在使用[position()<8]的最大7个节点。现在,我们为什么将a a a与来自A1的字符串连接起来也是有意义的,因为risk可能出现在字符串的开头,或者少于三个单词,那么risk将检查返回的节点是否使用通配符以C1:C4中的任何单词开头。这是为了防止可能出现的标点符号,以避免matching;SUM()和ISNUMBER()加上双一元,最后进行点击数之和。注:,答案不是3,而是 4!因为“经济”会被计算两次。
发布于 2022-09-27 15:15:43
如果最近发布的Microsoft-365版本,您可以尝试以下公式。
=LET(x,TOCOL(TEXTSPLIT(A1," ")),y,MATCH("risk",x,0),z,INDEX(x,SEQUENCE(y+2,1,y-3)),COUNT(XMATCH(D1:D4,z,0)))

https://stackoverflow.com/questions/73869149
复制相似问题