Excel SUMIFS 在一系列数字上,这些数字被格式化为字符串

Posted

技术标签:

【中文标题】Excel SUMIFS 在一系列数字上,这些数字被格式化为字符串【英文标题】:Excel SUMIFS over a range of numbers, which are formatted as strings 【发布时间】:2020-01-14 14:06:39 【问题描述】:

我在 Excel 中使用自动查询,它从服务器查询 TFS 数据。此数据存在于名为“TFSData”的工作表中。 在另一张纸上,我正在运行一些统计评估,例如计算每个 sprint 或其他噱头的已验证故事。我正在使用 COUNTIFS 或 SUMIFS 公式来获取结果。

现在我正在尝试使用 SUMIF 从 TFS 数据中给出的数字中获取每个 sprint 的“附加值”。在这里我遇到了麻烦,因为带有“附加值”数字的列被格式化为文本。 我没有机会操作这些数据,因为每次重新运行查询时更改都会丢失。

额外的帮助列也不起作用,因为刷新后新插入的行不包含任何公式 - 这需要在刷新后进行大量手动返工。

单元格的实际公式如下所示:

=SUMIFS(TFSData!J3:J352; TFSData!N3:N352;"*Sprint 212": TFSData!D3:D352;"Verified");

它产生“0”的结果。 “J”列是包含字符串值的列,例如“3”、“5”等。

我想使用类似的东西:

=SUMIFS(VALUE(TFSData!J3:J352);TFSData!N3:N352;"*Sprint 212": TFSData!D3:D352;"Verified");

有什么想法吗?

解决方案如下:

=SUMPRODUCT(TFSData!J3:J352+0;--ISNUMBER(SEARCH("Sprint 212";TFSData!N3:N352));--(TFSData!D3:D352="Verified"));

【问题讨论】:

使用 SUMPRODUCT,例如如上所述here。 【参考方案1】:

你有几个选择:

1) 使用SUMPRODUCT,例如

= SUMPRODUCT(TFSData!J3:J352+0; (RIGHT(TFSData!N3:N352,10)="Sprint 212")+0; (TFSData!D3:D352="Verified")+0)

(注意上面公式中的第一个+0是将文本转换为数字,另一个+0是将TRUE/FALSE值的数组转换为1/的数组0SUMPRODUCT 所必需的值。)

2) 更改您的查询以返回数字类型而不是“看起来像数字的文本”,然后您实际上可以使用您的 SUMIFS 公式。

3) 更好的是,更改您的查询以返回此总和结果。这样,您的查询将准确返回您想要的内容,而无需在 Excel 中执行额外的操作。

但我不知道整个故事,也许选项 2) 和 3) 不可行,因为您正在调用存储过程,在这种情况下您无法更改查询。只是注意到,一般来说,我几乎总是发现让查询执行所有工作并在 Excel 中做尽可能少的工作更容易。

【讨论】:

只有列Jnumbers-that-look-like-text,所以你+0 的次数太多了。此外,SUMIFS 中的通配符 * 必须是 SUMPRODUCT 中的不同方法。 感谢您的想法。它工作得很好。唯一的调整是用搜索功能替换通配符。 =SUMPRODUCT(TFSData!J3:J352)+0;--ISNUMBER(SEARCH("Sprint 212";TFSData!N3:N352));--(TFSData!D3:D352="Verified"));

以上是关于Excel SUMIFS 在一系列数字上,这些数字被格式化为字符串的主要内容,如果未能解决你的问题,请参考以下文章

将 SUMIFS 与多个 AND OR 条件一起使用

excel中将两个单元格的内容合并

怎样在柱状图上加数字

Excel:如何像数据透视表一样对一系列带有前导零的数字进行排序?

Excel帮助:如果在日期范围内,则汇总数字

在excel中检查年份=年份的问题