excel函数求教

表格见下图。需求为统计某个月内的项目类型数量,项目类型统计为只要单元格包含即为1个,例如此表中,想要统计出F列1月份录入的网络安全服务在D列中有几个,希望月份可以自动匹配识别统计数量。每个月类型数量专门有一个工作表进行统计,见第二个图片。
目前有个函数,但是只能精准统计,如果单元格内包括其他类型就统计不进去了。函数如下=SUMPRODUCT((MONTH('表1'!F2:F20)&"月"=C2)*('表1'!D2:D20=B2))
请大神指点优化。

由于你提到如果单元格内包括其他类型就统计不进去了,我们需要用到 SEARCH (或 FIND,如果对大小写敏感的话) 函数来代替等号 = 来检测一个单元格内是否含有某个特定的字符串。

=SUMPRODUCT((MONTH('表1'!F2:F20)&"月"=C2)*(ISNUMBER(SEARCH(B2,'表1'!D2:D20))))

在这个函数中,

    SEARCH(B2,'表1'!D2:D20) 会为每个D列单元格返回B2中文本的位置,如果找不到,则返回错误。

    ISNUMBER() 函数是用来判断 SEARCH() 函数的返回结果是否为数字(即文本被发现),如果是数字则返回 TRUE,否则为 FALSE。

    这样,即使当单元格内包含其他类型,只要包括想要的项目类型文本,SEARCH 就会返回一个数字,ISNUMBER 就会将其转换为 TRUE,并作为一个有效匹配计数。

    请注意,这个函数的工作原理取决于实际的数据格式和布局,如果表格中有多个月份及类型在同一个单元格内部,可能需要额外的处理。如果以上方法不适用,你可能需要利用Excel的高级功能,如编写VBA宏来处理更复杂的数据匹配和统计要求。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2024-01-17
你可以尝试使用COUNTIFS函数来实现你的需求,它可以支持多个条件的计数。在你的情况下,可以按照以下方式使用COUNTIFS函数:

```excel
=COUNTIFS('表1'!F2:F20, "*" & B2 & "*", MONTH('表1'!F2:F20), MONTH(C2 & "1"))
```

这个函数会统计在'表1'工作表的F列中包含指定项目类型(B2)的单元格数量,并且在同一月份(由C2指定的月份)内。这样,即使单元格内包含其他类型,也会被正确统计。
相似回答