如何对多个单元格中的字母数字文本字符串内的值求和?
例如,我想在一行中的 3 个单元格中计算分钟数的总和
A2 = Late 6 min,
B2 = Late 12 min, &
C2 = Late 150 min cells arranged in a row.
将以上数字相加,结果为 168。
答案1
答案2
如果您有快速填充功能(2013 及更高版本),您可以放入一个辅助列并使用它。
在数据上方添加一行,插入一行并在其中输入类似“s5t3”的内容,然后在旁边的辅助列单元格中输入“9876543210”,按 Ctrl-E,数据列中的数字项将放置在辅助列中。减去除数字以外的任何内容。由于您的数据只有一个位置有数字,并且应该作为一个整体来看待,因此辅助列中的对应项将是您希望添加的数据,依此类推。如果之后必须清理,请在结果单元格中粘贴|值并删除辅助列和额外的行。
但是,如果你不能这样做,或者不想这样做、不被允许这样做等等,而又确实需要一个公式,Ablebits 有一个公式:
=IF(SUM(LEN(A1)-LEN(SUBSTITUTE(A1, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A1, LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1))* ROW(INDIRECT("$1:$"&LEN(A1))),0), ROW(INDIRECT("$1:$"&LEN(A1))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A1)))/10),"")
(当然,全部一行)。将其放在数据中的第一个单元格旁边(在右侧,例如,如果数据从 A1 开始,则放在 A2 中)。突出显示它和另一个单元格(不会有任何“A1”实例),然后使用 Ctrl-H 将“A1”替换为数据的第一个单元格的地址。或者将其放在您需要第一个数据单元格输出的任何位置。如果您需要在公式中使用它,请找出要替换“A1”的单元格地址并执行此操作,然后将其复制并粘贴到公式中。
嗯……等一下,你的代码跨列……将其放在第一个数据单元格下,并相应地替换“A1”。(或者在你给出的例子中根本不替换。)
无论如何,源数据中的所有数字都会保留,其他数字都会被删除,并创建一个数字值。显然,对于较大的数字来说,这将是一个问题,但您的数据不会出现这些问题。
最后,我要指出的是,您的数据格式非常好,因此您可以使用这种方法可靠地提取数字:
=MID(A1,6,FIND(" min",A1)-6)
因为第一个数字总是第 6 个字符,而“space-min”(“ min”)总是跟在它后面。您从第 6 个字符开始字符串,并动态查找“ min”中空格的字符数,然后减去 6 以获得数字部分的长度,因此 MID() 函数仅返回数字。
如果您的数据格式正确且特征明确,那么您可以随时使用此功能。您的数据格式正确且特征明确,因此... 让自己轻松一点吧!
答案3
您可以使用“文本分列”来拆分文本和数字,然后按照以下步骤对数字求和:
- 选择包含要拆分的文本的单元格或列。
- 选择数据 > 文本分列。
- 在“将文本转换为列向导”中,选择“分隔”>“下一步”。
- 选择空间。
- 文本、数字和文本将被分成几列。
- 选择“完成”。
- 现在您可以使用 =sum() 对数字列进行求和...