Excel单元格模糊查找并匹配多个条件的合计、自动开列
首先建议改变下工作表的记录方式,好的方式不仅体现工作的规范和严谨,而且也是便于Excel工作表后期数据处理的基础。
如混凝土的标号记录就很混乱,C20、C25、C30等都是完整的标示混凝土等级的等级符号,而工作表中的“C砼25”这决不是工程语言,C25砼则是规范的,砼C25也还说得过去。
工作表中没必要每行数据之间留空行,留空行不仅记录时麻烦,且无论是后期用数据透视表还是用公式都造成数据的冗余(空白数据冗余),如本问题中的公式,就要对所有空白行与数据行一样进行计算,白白浪费资源。
其次,对你的描述不是很清楚。特别是问题2,请你自己再看看,感觉描述与截图无法对应,所以没给你提供公式解答。而问题1中,公式则纯粹是凭对工程的了解,知道25是不能分开的(其实C25就是不分割的),而你B列中却如前说,有些混乱,所以把C和砼单独拿来用。
如图:
C27=SUMPRODUCT(ISNUMBER(FIND("25",B8:B26))*ISNUMBER(FIND("C",B8:B26))*ISNUMBER(FIND("砼",B8:B26))*(D8:D26=D27)*(E8:E26=E27)*C8:C26)
仔细看了下您的原始数据,出现问题的原因是记录数据的时候不规范。所以,首要的是把这个规范起来,免得后续还有这样的原始记录出现。
对于已有数据,我想到的一种办法是归纳原始数据中关键词出现的模式:都含有25。所以只要能确保有25出现的单元格绝大多数都是c25砼(如果有个别打破这个规则,可以手动改一下),直接用find之类的函数来匹配(不建议用sumif汇总,因为您后面还提到了要分开这些不同类别的数据)。
c30砼等其他关键词类似。如果要在一个公式里匹配所有关键词,则用if来嵌套。
我做了个简单示例:
如果除了C25砼和C30砼,还有其他类别,可以继续嵌套if。
有了这样的字段之后,您要汇总统计也好,分开不同类别的数据到不同的sheets也好,都可以通过数据透视表解决。