Excel formula Excel:在列的字符串中查找特定单词每次出现的位置

Excel formula Excel:在列的字符串中查找特定单词每次出现的位置,excel-formula,position,multiple-columns,Excel Formula,Position,Multiple Columns,使用MS Excel公式,我希望找到在单元格范围/列中的文本字符串中找到的特定单词的位置 我使用的公式只能通过单个单元格和列识别和查找关键字的位置。我无法通过使用数字辅助列(单元格D2:D12“引用”)查看整个列单元格来重复此操作,该列提供了要查找的下一个位置的引用 如果需要达到所需的结果,欢迎使用帮助器列 以“红色”突出显示的单元格是我所寻找的最终输出结果 有关用于C列和D列的公式,请参见下文。文本字符串位于A2:A12列 A列 数据文本 多莉不会数她的鸡蛋,而是数她的苹果 托尼开着一辆小

使用MS Excel公式,我希望找到在单元格范围/列中的文本字符串中找到的特定单词的位置

我使用的公式只能通过单个单元格和列识别和查找关键字的位置。我无法通过使用数字辅助列(单元格D2:D12“引用”)查看整个列单元格来重复此操作,该列提供了要查找的下一个位置的引用

如果需要达到所需的结果,欢迎使用帮助器列

以“红色”突出显示的单元格是我所寻找的最终输出结果

有关用于C列和D列的公式,请参见下文。文本字符串位于A2:A12列

A列 数据文本
多莉不会数她的鸡蛋,而是数她的苹果
托尼开着一辆小货车去上班
许多晚上他都睡不着觉
仅此而已
她去接她的儿子
他会数到很多次 他们圣诞节去购物了
你可以把他算作接送某人的人
他们的价值如此之高,以至于他们会睡在他的皮卡车里
没有人会和蒂米一起玩
试图找到每个单词的位置

B栏 关键词列表
脚趾

计数
南瓜
拾取
兰迪
萨利
睡眠
乔纳森

C2:
=SUMPRODUCT((LEN($A$2:$A$12)-LEN(替代品($A$2:$A$12)),UPPER(B2),“”))/LEN(B2))

D2和E2:
=过滤器(B2:C10,C2:C10>0)

F2:
=IF(E2=”“,”,REPT(D2&“^”,E2))

G2:
=TEXTJOIN(“,TRUE,F2:F4)

H2:
=修剪(中间(替换($G$2,^),报告(“,LEN($G$2)),(COUNTIF($H$1:H1,“&”“”)-1)*LEN($G$2)+1,LEN($G$2))


I2:
=IF(H2=”“,”,IF(COUNTIF($H$2:H2,H2)>1,SUM(I1+1),1))

尝试下图中的设置和公式解决方案

1]
C2
“总发生率”,复制公式:

=SUMPRODUCT(LEN($A$2:$A$12)-LEN(SUBSTITUTE(LOWER($A$2:$A$12),LOWER(B2),"")))/LEN(B2)
=SUMPRODUCT(LEN($A2)-LEN(SUBSTITUTE(LOWER($A2),LOWER(D$1),"")))/LEN(D$1)
2]
D2
“计数”,将公式复制到
F2
“睡眠”并全部向下复制:

=SUMPRODUCT(LEN($A$2:$A$12)-LEN(SUBSTITUTE(LOWER($A$2:$A$12),LOWER(B2),"")))/LEN(B2)
=SUMPRODUCT(LEN($A2)-LEN(SUBSTITUTE(LOWER($A2),LOWER(D$1),"")))/LEN(D$1)
3]
G2
“关键字”,公式复制下来:

=LOOKUP(ROW(A1),SUMIF(OFFSET(C$1,,,ROW($1:$12),),"<>")+1,B$2:B$4)&""
=IF(G2="","",COUNTIF(G$2:G2,G2))
=IF(G2="","",LOOKUP(H2,SUMIF(OFFSET(INDEX($1:$1,MATCH(G2,$1:$1,0)),,,ROW($1:$12),),"<>")+1,$A$2:$A$12))
=IF(G2="","",FIND("~",SUBSTITUTE(LOWER(I2),LOWER(G2),"~",COUNTIFS(G$2:G2,G2,I$2:I2,I2))))
5]
I2
“内容关键字数据文本”,复制公式:

=LOOKUP(ROW(A1),SUMIF(OFFSET(C$1,,,ROW($1:$12),),"<>")+1,B$2:B$4)&""
=IF(G2="","",COUNTIF(G$2:G2,G2))
=IF(G2="","",LOOKUP(H2,SUMIF(OFFSET(INDEX($1:$1,MATCH(G2,$1:$1,0)),,,ROW($1:$12),),"<>")+1,$A$2:$A$12))
=IF(G2="","",FIND("~",SUBSTITUTE(LOWER(I2),LOWER(G2),"~",COUNTIFS(G$2:G2,G2,I$2:I2,I2))))

尝试调整一下:你能分享
C
D
列中的公式吗?我不知道如何使用公式。我只能用VBA来做。我需要关键字列和数据文本列来创建另外三个列。添加或删除关键字或添加/删除数据文本时,三列中的数据将得到更新。如果您对此感兴趣,请确认或在问题中添加
VBA
标记。否则,请忽略。您好VBASIC208,谢谢您的帮助,我已经提供了关于到目前为止我所使用的公式的其他信息。我的项目的最终解决方案是允许excel根据找到关键字的列和行,使用多个关键字在每个单元格内容中的相对位置和位置,从文本字符串中识别和提取特定关键字。如果可能的话,我更喜欢Excel公式vs.VBA Hi Bosco_Yip,非常感谢您提供的公式改进,以获得找到每一行位置的实际结果,再次感谢您,它很有效。。。我非常感谢您在考虑这项艰巨任务时给予的协助与合作。。。