Excel:查找某列字符串中特定单词每次出现的Position/Location
Excel: Find the Position/Location of Each Occurrence of a Specific Word in a String in a Column
使用 MS Excel 公式,我想找到位于 Range/Column 个单元格中的文本字符串中找到的特定单词的位置。
我使用的公式仅通过单个单元格与列来识别和查找关键字的位置。我无法通过查看整个列单元格来重复此操作,使用我的数字辅助列(Cell D2:D12“Occurrence”)提供要找到的下一个位置的出现。
如有必要,欢迎使用辅助列来实现预期结果。
以“红色”突出显示的单元格是我要查找的最终输出结果。
C 列和 D 列使用的公式见下文。文本字符串位于 A2:A12 列。
A 列
数据文本
多莉不会数她的鸡蛋,但会数她的苹果
托尼开着皮卡上班
许多个晚上他无法入睡
仅此而已
她去接儿子
很多次他都会数过
他们去买圣诞礼物
你可以算他去接人
他们数得太多以至于他们会睡在他的皮卡车里
没有人会和蒂米一起玩
试图找到每个单词的位置
B 列
关键字列表
脚趾
鞋子
计数
南瓜
皮卡
兰迪
莎莉
睡觉
乔纳森
C2:=SUMPRODUCT((LEN($A:$A)-LEN(SUBSTITUTE((UPPER($A:$A)),UPPER(B2),"")))/LEN(B2))
D2&E2:=FILTER(B2:C10,C2:C10>0)
F2: =IF(E2="","",REPT(D2&"^",E2))
G2:=TEXTJOIN("",TRUE,F2:F4)
H2:=TRIM(MID(SUBSTITUTE($G,"^",REPT(" ",LEN($G))),(COUNTIF($H:H1,"<>&""")-1)*LEN($G)+1,LEN($G)))
I2: =IF(H2="","",IF(COUNTIF($H:H2,H2)>1,SUM(I1+1),1))
试试下面的图片设置和公式解决方案。
1] C2
“总出现次数”,公式复制下来:
=SUMPRODUCT(LEN($A:$A)-LEN(SUBSTITUTE(LOWER($A:$A),LOWER(B2),"")))/LEN(B2)
2] D2
“计数”,公式复制到 F2
“睡眠”并全部复制下来:
=SUMPRODUCT(LEN($A2)-LEN(SUBSTITUTE(LOWER($A2),LOWER(D),"")))/LEN(D)
3] G2
“关键字”,公式复制下来:
=LOOKUP(ROW(A1),SUMIF(OFFSET(C,,,ROW(:),),"<>")+1,B:B)&""
4] H2
"出现次数",公式复制下来:
=IF(G2="","",COUNTIF(G:G2,G2))
5] I2
“内容关键字数据文本”,公式复制下来:
=IF(G2="","",LOOKUP(H2,SUMIF(OFFSET(INDEX(:,MATCH(G2,:,0)),,,ROW(:),),"<>")+1,$A:$A))
6] J2
“位置”,公式复制下来:
=IF(G2="","",FIND("~",SUBSTITUTE(LOWER(I2),LOWER(G2),"~",COUNTIFS(G:G2,G2,I:I2,I2))))
使用 MS Excel 公式,我想找到位于 Range/Column 个单元格中的文本字符串中找到的特定单词的位置。
我使用的公式仅通过单个单元格与列来识别和查找关键字的位置。我无法通过查看整个列单元格来重复此操作,使用我的数字辅助列(Cell D2:D12“Occurrence”)提供要找到的下一个位置的出现。
如有必要,欢迎使用辅助列来实现预期结果。
以“红色”突出显示的单元格是我要查找的最终输出结果。
C 列和 D 列使用的公式见下文。文本字符串位于 A2:A12 列。
A 列
数据文本
多莉不会数她的鸡蛋,但会数她的苹果
托尼开着皮卡上班
许多个晚上他无法入睡
仅此而已
她去接儿子
很多次他都会数过
他们去买圣诞礼物
你可以算他去接人
他们数得太多以至于他们会睡在他的皮卡车里
没有人会和蒂米一起玩
试图找到每个单词的位置
B 列
关键字列表
脚趾
鞋子
计数
南瓜
皮卡
兰迪
莎莉
睡觉
乔纳森
C2:=SUMPRODUCT((LEN($A:$A)-LEN(SUBSTITUTE((UPPER($A:$A)),UPPER(B2),"")))/LEN(B2))
D2&E2:=FILTER(B2:C10,C2:C10>0)
F2: =IF(E2="","",REPT(D2&"^",E2))
G2:=TEXTJOIN("",TRUE,F2:F4)
H2:=TRIM(MID(SUBSTITUTE($G,"^",REPT(" ",LEN($G))),(COUNTIF($H:H1,"<>&""")-1)*LEN($G)+1,LEN($G)))
I2: =IF(H2="","",IF(COUNTIF($H:H2,H2)>1,SUM(I1+1),1))
试试下面的图片设置和公式解决方案。
1] C2
“总出现次数”,公式复制下来:
=SUMPRODUCT(LEN($A:$A)-LEN(SUBSTITUTE(LOWER($A:$A),LOWER(B2),"")))/LEN(B2)
2] D2
“计数”,公式复制到 F2
“睡眠”并全部复制下来:
=SUMPRODUCT(LEN($A2)-LEN(SUBSTITUTE(LOWER($A2),LOWER(D),"")))/LEN(D)
3] G2
“关键字”,公式复制下来:
=LOOKUP(ROW(A1),SUMIF(OFFSET(C,,,ROW(:),),"<>")+1,B:B)&""
4] H2
"出现次数",公式复制下来:
=IF(G2="","",COUNTIF(G:G2,G2))
5] I2
“内容关键字数据文本”,公式复制下来:
=IF(G2="","",LOOKUP(H2,SUMIF(OFFSET(INDEX(:,MATCH(G2,:,0)),,,ROW(:),),"<>")+1,$A:$A))
6] J2
“位置”,公式复制下来:
=IF(G2="","",FIND("~",SUBSTITUTE(LOWER(I2),LOWER(G2),"~",COUNTIFS(G:G2,G2,I:I2,I2))))