假设我有大约 50 个类似于下面的单元格。我只想对 之后OT:
和 之前的数字求和)
。有些单元格没有OT:
或 数字,因此不应包括在总和中。我该怎么做?
D:XYZ
D:(加时赛:7)
球员:(加时赛:13)
答案1
假设您的数据位于 A 列,第一项位于单元格 A1,并且假设您可以使用 B 列来保存一些临时数据。
在单元格 B1 中输入以下公式:
=IFERROR(value(MID(A1,FIND("OT: ",A1)+LEN("OT: "),FIND(")",A1,FIND("OT: ",A1))-FIND("OT: ",A1)-LEN("OT: "))),0)
解释:
FIND("OT: ",A1)
返回字符串“OT:”第一次出现的位置
LEN("OT: ")
返回“OT:”的长度,即 4(包括尾随空格)
FIND(")",A1,FIND("OT: ",A1))
返回字符串“OT:”后第一次出现“)”的位置
MID(A1,FIND("OT: ",A1)+LEN("OT: "),FIND(")",A1,FIND("OT: ",A1))-FIND("OT: ",A1)-LEN("OT: "))
根据上面解释的参数返回“OT:”和“)”之间的字符串。
VALUE(...)
将字符串转换为数字,以便您可以添加数字。
IFERROR(..., 0)
将那些不匹配的结果转换为#VALUE!
0,这样您就可以添加数字而不会出现错误。
最后,请从B1单元格向下填充公式,使得A列中的每个数据在B列中都有对应的公式。将B列:B相加,就是您需要的结果。
答案2
在新的 Excel 中,您可以使用公式:
=SUM(IFERROR(--TEXTBEFORE(TEXTAFTER(A1:A5,"OT:"),")"),0))
其中A1:A5
代表您的数据范围。
答案3
有很多方法可以实现预期结果。假设没有Excel Constraints
按照发布的标签,那么可以使用TEXTAFTER()
&的组合或&TEXTSPLIT()
的组合,后者假设后面的分隔符是唯一的最后一个分隔符。以下是我的建议:TEXTAFTER()
TEXTBEFORE()
:
OT
- 使用
TEXTAFTER()
&TEXTSPLIT()
• 单元格中使用的公式A5
=SUM(IFERROR(--TEXTAFTER(TEXTSPLIT(A1:A3,")"),"OT:"),0))
- 使用
TEXTAFTER()
&TEXTBEFORE()
• 单元格中使用的公式A5
=SUM(IFNA(--TEXTAFTER(TEXTBEFORE(A1:A3,")"),":",-1),0))
然而,如果不使用现代版本Excel,则可以使用以下内容:
• 单元格中使用的公式A5
=SUM(IFERROR(--REPLACE(SUBSTITUTE(A1:A3,")",),1,FIND("OT:",A1:A3)+2,),0))
- 首先,使用
SUBSTITUTE()
函数,从没有任何内容的字符串中删除右括号。 - 其次,使用
REPLACE()
函数,删除包含之前的部分OT:
- 添加,
double unary
即将--
文本格式的数字转换为实际数字,并将其换行IFERROR()
以解析错误值0
- 最后,用来
SUM()
获取整个数组的总和。 - 笔记:如果您不使用
MS365
或,Excel 2021
则需要在退出编辑模式时使用CTRL
++输入上述公式。SHIFT
ENTER