数字存储为文本时如何使用大于或等于运算符的Excel SUMIFS

时间:2019-05-03 01:54:33

标签: excel excel-formula worksheet-function

我有一个表,其中底层数据库将数字存储为文本。在这种情况下,大于或等于运算符不会捕获第一个值。

此公式将忽略结果中AcctNum = 123的数据的第一行。公式在应返回21时返回11。

=SUMIFS(Table1[Balance],Table1[AcctNum],">='123'", Table1[AcctNum],"<='500'")

enter image description here

我尝试过的事情: 1.“ *”通配符。 2. T()和TEXT()函数的许多组合。

我不想做的事情: 1.使用数组。 2.在我的表中添加要转换为数字的列,因为并非所有AcctNum的格式都相同,这就是为什么它们必须保留为文本的原因。 3.使用SUMPRODUCT,因为在这种情况下,公式的可读性很重要。

我编写了一个自定义函数来解决此问题,但是我想知道是否存在自然的Excel解决方案。我已经读过SUMIF和SUMIFS在数字作为文本存储或从数据库中检索时不能很好地工作。我正在使用Excel 2016。

3 个答案:

答案 0 :(得分:1)

尝试使用双负号的SUMPRODUCT将文本和布尔值转换为数字。

=SUMPRODUCT(--(--Table1[acctnum]>=123), --(--Table1[acctnum]<500), Table1[balance])

答案 1 :(得分:0)

您的意思是2。向表中添加转换为数字的列,因为并非所有AcctNum的格式都相同,这就是为什么它们必须保留文本的原因?

除了数组之外,您还可以使用数组或帮助器列来执行此操作,不确定是否可以使用SUMIFS。

答案 2 :(得分:0)

如果使用Sumproduct,则可以将文本显式转换为数字。

=SUMPRODUCT(Table1[Balance],--(Table1[AcctNum]+0>=123),--(Table1[AcctNum]+0<=500))

enter image description here