如何对包含文本的单元格的列求和?

如何对包含文本的单元格的列求和?

我有一列包含数据大小值,包括数字和各种文本。有些值为“3.54 TB”,有些值为“620 GB”。最终,我想获取给定列的总数据大小。例如,3.54 TB + 620 GB = 4.16 TB。

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

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

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

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

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

有人可以帮忙吗?

答案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)-10,1,2,3根据文本部分在数组中的位置返回{"TB","GB","MB","KB"}

1000^1,1000,1000000,100000000000根据 MA​​TCH 的返回结果返回。

在此处输入图片描述

答案2

我确信可能还有其他解决方案,但这个可行:=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 以返回所需的单位(例如 1024^4 表示 TB,1024^3 表示 GB,等等)

答案3

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

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

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

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

答案4

在此处输入图片描述

在单元格 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。

在单元格 C5 中写入此公式:

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

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

相关内容