如果单元格在数字末尾包含特定字符,则将范围内的数字相加

时间:2019-02-12 10:16:43

标签: excel excel-formula

我的范围是A2:A6。假设A2 = 3 A3 = 4k A4 = h A5 = 6k且A6为空白。 我需要对所有以“ k”结尾的数字求和。 我想出了一个公式:

=SUMPRODUCT(NOT(ISBLANK(--LEFT(A2:A6;SEARCH("k";A2:A6;1)-1))))

但是我无法使(NOT(ISBLANK部分工作。以上返回0。 如果范围仅包含以“ k”结尾的数字,则可以使用此公式的简化版本,但是我需要它跳过空格。 我没有找到可行的解决方案来使其正常工作。 以上范围的正确结果应返回10。

3 个答案:

答案 0 :(得分:1)

同意布拉德·迪克森(Brad Dixon)的评论,即“帮助器”列使事情变得简单得多。我确实很喜欢解决问题,所以我试了一下,并提出了我认为应该更强大的功能?

=SUMPRODUCT(IFERROR((RIGHT(A2:A6)="k")*SUBSTITUTE(A2:A6,"k","",1),0))

用作数组公式(使用 Ctrl + Shift + Enter 。该公式包含2个主要部分:

  • (RIGHT(A2:A6)="k")检查值是否以k结尾,并且
  • SUBSTITUTE(A2:A6,"k","",1)删除了k以获得实际值。

enter image description here

您的公式(如果可行)即使在k末尾也可以在k之前包含任何数字(例如,它将在{{1}中使用6 }(如果有的话),但以上都不存在。

在Excel中,空格也被理解为等于0,因此添加空格也不会改变结果。

答案 1 :(得分:1)

尝试数组公式。

我做了这个数据示例:

here

如上图所示,我只想对单元格A2和A4中的值求和(以char K结尾的值)。结果是6。我使用的公式就是这个:

=SUM(IF(RIGHT($A$1:$A$4;1)="k";SUBSTITUTE($A$1:$A$4;"k";"")+0))

  

要使此公式起作用,必须将其作为数组公式输入,即   意味着您可以正常输入,而不是按 Enter   确认,您必须按    CTRL + SHIFT + ENTER ,否则它将不起作用。

公式中的+0部分是将K替换为数字后自动转换得到的字符串。

希望您可以根据自己的需要对此进行调整。

答案 2 :(得分:1)

=SUMPRODUCT((RIGHT(A2:A6)="k")*(IFERROR(--LEFT(A2:A6),0)))

您不必担心它是否为空白,因为空白的值为0,并且不会影响您的总和。问题是左边的数字不一定总是数字。在IFERROR中包装LEFT函数并将其设置为零会将非数字视为false或0。

由于SUMPRODUCT中的IFERROR函数,因此需要将公式输入为数组函数。输入公式时,使用 CONTROL + SHIFT + ENTER 而不是仅 ENTER 。当{}出现在公式周围时,您将知道自己做对了。它们不能手动添加。

poc

注意:用,替换;分隔符以匹配您的系统