Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Excel,字符串重复,单单元格迭代_Regex_Excel_Excel Formula - Fatal编程技术网

Regex Excel,字符串重复,单单元格迭代

Regex Excel,字符串重复,单单元格迭代,regex,excel,excel-formula,Regex,Excel,Excel Formula,我试图从单个单元格中的一个很长的字符串中提取某些数据片段。在本练习中,这是我在单元格A1中的数据 这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是“产品”s:4:4:4:4“产品”s:4:4“3”s:8:“形式关键”s:s:16:从“形式”关键”s:16:“结果”是:16:“最终,”s:16:“结果”是“结果”s:16:“结果”是:16:“最终”s:是:从从从从中得出的,”s:16:“结果”s:16:“结果”s:16:

我试图从单个单元格中的一个很长的字符串中提取某些数据片段。在本练习中,这是我在单元格A1中的数据

这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是:这句话的意思是“产品”s:4:4:4:4“产品”s:4:4“3”s:8:“形式关键”s:s:16:从“形式”关键”s:16:“结果”是:16:“最终,”s:16:“结果”是“结果”s:16:“结果”是:16:“最终”s:是:从从从从中得出的,”s:16:“结果”s:16:“结果”s:16:“结果”s:是:16:“最终”s:16:“结果”s:16:“最终”s”s:是:16:是:是:是:16:“结果”s:16:是:是:是:是:是:是:是:是“最终的。s:16:是:是。s:s:s:s:s:16 s:5:“99988”;i:10142;s:5:7:选项a:a:a:11:选项类型)s:类型s:s:s:s:12:选项:s:12:“选项”s:12:“选项”s:12:“选项”s:价值价值”s:s:价值”s:5:“颜色”s:5:“颜色”s:5:s:5:5:“颜色”s:5:5:“颜色”s:5:“价值”s:5:“颜色”s:5:“价值”s:s:s:5:“价值”s:s:s:5:s:s:s:s:s:s:s:s:5:s:s:s:s:5:s:s:s:5:s:s:s:s:s:s:5:s:5:s:s:s:s:s:s:5:s:s:5:s:5:s:s:s:s:s:s:5:5:s:s:s:5:s:s:s:s:5:s:5:11:“黑色”s:9:“美国:美国:12:“选项”美国:美国:12:“选项”美国值”s:5:“630085”s:s:5:“6305”s:s:s:5:“630085”s:s:11:“自定义”s:s:11:“自定义”美国:b:0;b:b:0。i:i:i:i:i:i:b:b:b:b:0。i:i:i:i:i:b:b:b:b:b:b:0。i:b:b:b:b:0。i:i:i:i:i:i:i:b:b:b:i:i:i:b:b:b:i:i:i:b:i:i:b:i:i:i:b:b:i:b:b:i:i:i:i:b:i:i:b:i:i:b:b:b:b:b:0。i:i:i:i:i:i:i标签“s:6:“方向”s:5:“值”s:17:“左侧”s:11:“打印值”s:17:“左侧”s:9:“选项id”s:5:“10143”s:11:“选项类型”s:9:“下拉”s:12:“选项值”s:5:“73064”s:11:“自定义视图”b:0;}i:4;a:7:{s:5:“标签”s:12:“表格”s:5:“值”s:16:“是的!添加表格”s:11:“打印值”s:16:“表格”选项id:1335:“是的id:1334:“选项类型”s:9:“下拉列表”s:12:“选项值”s:5:“99988”s:11:“自定义视图”b:0;}i:5;a:7:{s:5:“标签”s:8:“发货”s:5:“值”s:20:“前门交付”s:11:“打印值”s:20:“前门交付”s:9:“选项id”s:5:“10142”;s:11:“选项类型”s:9:“下拉列表”s:12:“选项值”s:5:“自定义视图”s:7300;}

最终的结果是分离颜色、修剪、材质方向等的值

我使用的公式是:

=MID(LEFT(A4,FIND("print_value",A4)-9),FIND("Color",A4)+25,LEN(A4))
这基本上是在两个点之间搜索并修剪脂肪。它有效,但只适用于“print_value”的第一次迭代。如果我使用这个搜索“Trim”

…我得到了一个空结果。这是因为print_值是重复的,并且不是字符串的唯一值。Excel不理解将其函数应用于哪个点,并自动清除

即使在这个字符串中有一些独特的因素,我基本上可以附加到这些因素上(并得到期望的结果),但我不能使用它们,因为它们不一致,并且在应用到其他单元格时会使公式无效

这就是说,这就是我所需要的。在这个公式中,我需要一种方法,a)告诉公式要查找哪个打印值迭代,或者B)将打印值更改为打印值(1、2、3、4等),然后运行我的修剪公式。

基于此的几个选项:

1)VBA-使用用户定义的功能 如果你不熟悉这些,那么遵循这个



2)使用公式

=FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),3))
  • c是您要查找的角色
  • A1是要查找的文本
  • 3是第n个实例

您还没有清楚地定义您的需求以使用正则表达式。但是,例如,如果您运行正则表达式来查找数据中的
print\u value
,您将得到以
print\u value
开头的六个项的匹配集合,并且返回您想要的项或其中的任何部分都很简单。再次,在您的示例中,
print\u value
Function FindN(sFindWhat As String, _
sInputString As String, N As Integer) As Integer
Dim J As Integer
Application.Volatile
FindN = 0
For J = 1 To N
FindN = InStr(FindN + 1, sInputString, sFindWhat)
If FindN = 0 Then Exit For
Next
End Function
=FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),3))