表格见下图。需求为统计某个月内的项目类型数量,项目类型统计为只要单元格包含即为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宏来处理更复杂的数据匹配和统计要求。