提取特定文本之前和逗号之后或原始单元格开头的值的公式

提取特定文本之前和逗号之后或原始单元格开头的值的公式

我正在尝试将统计数据从单个单元65 Rush Yds, 1 Rush TD, 1 Fum Lost, 105 Rec Yds, 1 Rec TD格提取到各个列 Rush Yds: 65Rush TD: 1Fum Lost: 1Rec Yds: 105Rec TD1

使用 MID() 提取 TD 非常简单,因为我知道使用公式它总是只领先 2 个位数

=IF(ISERROR(MID(A3,FIND("Pass TD",A3)-2,1)),0,MID(A3,FIND("Pass TD",A3)-2,1))

我所苦苦挣扎的是提取 Rec Yds 和 Rush Yds,因为它们可以是 1-3 位数字(1-999)之间的任何数字,也可以位于原始单元格的中间或开头。

这是我正在尝试创建表格的图片。

答案1

您可以尝试这个:(假设只有逗号和空格来分隔数据)

Rec Yds例如,在 A2 中查找65 Rush Yds, 1 Rush TD, 1 Fum Lost, 105 Rec Yds, 1 Rec TD

  1. 找到目标字符串索引并在那里修剪它(注意末尾有空格),然后修剪结果两端的所有空格,您将得到65 Rush Yds, 1 Rush TD, 1 Fum Lost, 105

    公式:(=TRIM(LEFT(A2,FIND("Rec Yds",A2)-1))我们把它放在 B2 中)

  2. 将所有逗号(,)替换为空格,您将得到65 Rush Yds 1 Rush TD 1 Fum Lost 105

    公式:(=SUBSTITUTE(B2, ",", " ")我们把它放在 B3 中)

  3. 用大量空格替换每个空格(这里我们使用 10 个空格),你会得到65 Rush Yds 1 Rush TD 1 Fum Lost 105

    公式:(=SUBSTITUTE(B3, " ", REPT(" ", 10))我们把它放在 B4 中)

  4. 从右侧获取 10 个字符,您将获得105

    公式:(=RIGHT(B4, 10)我们把它放在 B5 中)

  5. 修剪两侧,你将得到最终结果105

    公式:=TRIM(B5)

在此处输入图片描述

然后,您可以将所有这些公式组合成一个(它可能看起来很复杂而且很丑陋)添加一些错误检查

您提取的数字少于 5 位数字,因此您可以在步骤 3 中使用 5 个或更多空格,并在步骤 4 中采用相同数量的字符。(这里我们使用了 10)

答案2

如果您拥有具有该FILTERXML功能的 Windows Excel 2013+,则可以拆分字符串,然后检查C1:I1相应的组件。

  • 确保第 1 行中的标签与统计字符串中的“标签”相同。(如果不可能,则使用辅助行)
C2: =SUBSTITUTE(IFERROR(FILTERXML("<t><s>" & SUBSTITUTE($B2,",","</s><s>") & "</s></t>","//s[contains(.,'" &C$1 & "')]"),0),C$1,"")

在此处输入图片描述

请注意,在上面的结果截图中,Fumbles为零。这是因为没有Fum Lost列。您可以添加一个同名的列,或者您可以根据您想要的结果使用其他技术

相关内容