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
/的数组0
是SUMPRODUCT
所必需的值。)
2) 更改您的查询以返回数字类型而不是“看起来像数字的文本”,然后您实际上可以使用您的 SUMIFS
公式。
3) 更好的是,更改您的查询以返回此总和结果。这样,您的查询将准确返回您想要的内容,而无需在 Excel 中执行额外的操作。
但我不知道整个故事,也许选项 2) 和 3) 不可行,因为您正在调用存储过程,在这种情况下您无法更改查询。只是注意到,一般来说,我几乎总是发现让查询执行所有工作并在 Excel 中做尽可能少的工作更容易。
【讨论】:
只有列J
有numbers-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 在一系列数字上,这些数字被格式化为字符串的主要内容,如果未能解决你的问题,请参考以下文章