如图片所示,表格中有很多大类,每一类下都有多个货号,现在我想统计没一类的货号数量,例如,BS类共7款,现在我只能是人工去数,或者每一类都用前后行号去减,我想请教一下有没有更方便的方法可以得到各类的款数?
1.首先,来看一下原始数据。A列是美化表格使用的合并单元格(A2:A9区域),B列是A列内容对应的明细,需要在C列在每次A列名称第一次出现的时候显示A列合并单元格所占行数。
2.双击C2单元格,输入公式:
=IF(A2<>"",MATCH("*",A3:A$10,),"")
3.将C2单元格向下填充到到C9,这样C列就返回了想要的结果。
4.如果自己表格中根据上述公式做示例,可能会在最后一个单元格出现错误值,如下图所示:
5.解决方法:
在A列数据下面的一个单元格,本例是A10单元格,输入一个空格或者其他字符,这样是为了使MATCH()函数在最后一个判断时有匹配结果,从而避免错误值。
6.下面来解释一下公式用法。
首先来说一下MATCH()函数。MATCH函数的语法是这样的:MATCH(要匹配的单元格,要匹配单元格所在的数组,第三参数)。该函数返回第一参数在第二参数里是第几个,如下图说明:
7.然后看一下=MATCH("*",A3:A$10,)的用法。
这个是MATCH()函数的通配符用法,其中的“*”代表任意字符。在C2输入该公式,返回结果的意义是:从A3起的A3:A$10区域,第一个不是空的单元格是第几个。也就是A列下一个不为空的单元格,其实也就是距离下一个单元格的空单元格数,也就是A2合并单元格所占行数。
8.外面嵌套IF()函数是为了使A列是空白的时候B列也显示空白。具体如下图C3单元格:
C3=IF(A3<>"",MATCH("*",A4:A$10,),"")
公式的方法,能区别前边的波段吗,现在这个公式是直接统计一列里所有的bs,我这一列下边还有其他波段的BS想要区分开,
追答当然可以
不用countif,也有其他的公式可以搞定,
你能说清楚,我就能写出来
qq 1052974911
就是右边的这个小表格,我想要至少大类、款量、总数,这三列可以公式直接取值。
波段那列选中 有数据的范围-------F5 ---定位条件---空值---依次输入 = ↑ 按 ctrl+enter
假设波段在F列,大类为G列, 数量为H列,总数 I列
如果用的2007 数量 : 可以用sumifs: I 列公式 =sumifs(D:D,A:A,F1,C:C,G1&"*")
2003 公式: =sumproduct((A$2:A$1000=F1)*(LEFT(C$2:C$1000)=G1)*D$2:D$1000)
H列公式 : =countifs(D:D,A:A,F1,C:C,G1&"*")
2003 : =sumproduct((A$2:A$1000=F1)*(LEFT(C$2:C$1000)=G1))