如何使用包含文本的单元格对列进行求和?


2

我有一个包含数据大小值的列,包含数字和不同的文本。有些像“3.54 TB”,有些像“620 GB”。最终,我想获得给定列的总数据大小。例如,3.54 TB + 620 GB = 4.16 TB。

如果我可以将包含“TB”的单元格的总和发送到一个单元格,将包含“GB”的单元格与另一个单元格相加 - 将此GB单元格除以1000,我可以轻松地添加这两个单元格。

是否有任何公式可以对包含文本的单元格进行求和?我不想下载插件。

有人在这里问过这个问题:如何用包含文本的单元格对列进行求和?

并且齐射提供了下面的公式,但是当我使用它时,我返回“太少的参数”错误...

=SUM(NUMBERVALUE(MID(A1:A6000,SEARCH("p",A1:A6000)-1)))

有人可以帮忙吗?

Answers:


1

使用此方法迭代单元格并测试结尾将其全部转换为TB并将它们添加到一起:

=SUMPRODUCT(LEFT(A1:A2,FIND(" ",A1:A2&" ")-1)/1000^(MATCH(RIGHT(A1:A2,2),{"TB","GB","MB","KB"},0)-1)) & " TB"

迭代时LEFT(A1:A2,FIND(" ",A1:A2&" ")-1)返回数字部分。

MATCH(RIGHT(A1:A2,2),{"TB","GB","MB","KB"},0)-1返回0,1,2,3取决于在数组中找到文本部分的位置{"TB","GB","MB","KB"}

1000^返回1,1000,1000000,100000000000取决于MATCH的返回。

在此输入图像描述


很好地使用数组公式,既可以输入sumproduct,也可以使用单位的查找表。
Nick Russo

0

我确信可能还有其他解决方案,但这样做有效:=IF(RIGHT(A2,2)="TB",LEFT(A2,SEARCH(" ",A2,1))*1024^4,IF(RIGHT(A2,2)="GB",LEFT(A2,SEARCH(" ",A2,1))*1024^3)) 如果列中也有“MB”和“KB”,则必须添加适当的IF语句来解释它们。一旦你总结了你的列,你可以除以1024 ^ x来回到你想要的单位(即TB ^ 1024 ^ 4,GB等1024 ^ 3等)


0

我认为没有一个简单的公式。它需要几个步骤:

  1. 将数字与文本单元分开
  2. 将单位转换为乘数
  3. 将每个数字与其乘数相结合
  4. 总结结果
  5. 选择要使用的适当单位

数字2和5是棘手的,因为它们需要知道单位。在下面的示例中,我处理KB,MB,GB和TB,并假设它们表示基数为10的乘数(让KiB等表示基数为2)。但是您可能还需要B,b,kb,KB,PB,EB等,并且对于您想要处理的每个单元,您需要额外的IF()将其转换为乘数。

Excel表格,输入值转换为字节并求和,右侧显示每列的公式


0

在此输入图像描述

在Cell C2中写下这个公式并填写:

=IF(RIGHT(A2,2)="TB",SUM(IF(ISNUMBER(FIND(RIGHT(A2,2),$A$2:$A$3)),VALUE(LEFT($A$2:$A$3,FIND(RIGHT(A2,2),$A$2:$A$3)-1)),0)),IF(RIGHT(A2,2)="GB",SUM(IF(ISNUMBER(FIND(RIGHT(A2,2),$A$2:$A$3)),VALUE(LEFT($A$2:$A$3,FIND(RIGHT(A2,2),$A$2:$A$3)-1)),0))/1024))

注意 我已将公式的第二部分除以1024,将GB转换为TB。

在Cell C5中写下这个公式:

=ROUND(C2+C3,2)&" TB"

注意, 根据需要调整公式中的单元格引用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.