Excel显示特定字符分隔的字符串中的索引值

vjrehmav  于 2023-02-20  发布在  其他
关注(0)|答案(2)|浏览(186)

我一整天都在想办法做这件事,但没有运气。
所以我有一个表格,其中有一列“正文样式”,每个单元格都有一串由逗号分隔的数字,列表或字符串的每一项都可以是类似于“1234,1259131819,1213451817”的东西,列表的大小总是可变的,因此在一些小区中,列表可以具有40组由逗号分隔的数字。如果列表项是“13171819”,即包含18时计数,则我希望标识包含数字“18”的每组数字。最后,我需要获得包含“18”的每组数字的索引值列表。示例:输入=“59121213,1112131819,59,121318”输出=“2,4”,如果索引以1开头而不是以0开头,则为“1,3”
一旦我有了索引值与“18”匹配的字符串,我需要从Qty列中提取与该索引相对应的值,因为它们是相关的。简单地说,我只想知道包含“18”的索引值的qty值。
希望我的解释是清楚的,有人可以帮助我做到这一点。

例如:如果索引以1开头而不是以0开头,则输入=“59121213,1112131819,59,121318”,输出=“2,4”,否则为“1,3”
一旦我有了索引值与“18”匹配的字符串,我需要从Qty列中提取与该索引相对应的值,因为它们是相关的。简单地说,我只想知道包含“18”的索引值的qty值。

moiiocjp

moiiocjp1#

要获取索引号,请尝试-

=TEXTJOIN(",",1,FILTER(SEQUENCE(1,LEN(B1)-LEN(SUBSTITUTE(B1,",",""))+1),ISNUMBER(SEARCH("18",TEXTSPLIT(B1,",")&""))))

nhaq1z21

nhaq1z212#

您需要一个带有两个参数的函数:a)要搜索的字段和b)要查找的值。返回子字段的索引...从零开始:

Public Function getIndexes(str As String, lookfor As String)
   Dim s() As String, c As Integer, cfrom As Integer, cto As Integer, sep As String
   s = Split(str, ",")
   sep = ""
   cfrom = LBound(s)
   cto = UBound(s)
   For c = cfrom To cto
      If InStr(1, s(c), lookfor) > 0 Then
         getIndexes = getIndexes & sep & c
         sep = ","
      End If
   Next
End Function

如果单元格A1 =“112233、113344、225566”且单元格A2 =“22”,则在单元格A3中写入:=getIndexes(A1,A2)将获得0,2

相关问题