在Excel中,有几行数据,怎样快速得出含有某个特定组合的数据的行数?

如图,左边有几行数据,每个数字在一个单元格,6个数字组成一行,右边有一个特定5个数字组合,如何快速计算出左边每行6个数据中包含右边特定5个全部数值的行数?必须5个数都包含在内,有四个相同的也不需要!(黄色是我自己标注的,意思是2行符合要求)

好吧,我写了一条很长的公式,让你一下子统计出来:

公式为:

=SUMPRODUCT(((A2:A8=H2)+(B2:B8=H2)+(C2:C8=H2)+(D2:D8=H2)+(E2:E8=H2)+(F2:F8=H2))*((A2:A8=I2)+(B2:B8=I2)+(C2:C8=I2)+(D2:D8=I2)+(E2:E8=I2)+(F2:F8=I2))*((A2:A8=J2)+(B2:B8=J2)+(C2:C8=J2)+(D2:D8=J2)+(E2:E8=J2)+(F2:F8=J2))*((A2:A8=K2)+(B2:B8=K2)+(C2:C8=K2)+(D2:D8=K2)+(E2:E8=K2)+(F2:F8=K2))*((A2:A8=L2)+(B2:B8=L2)+(C2:C8=L2)+(D2:D8=L2)+(E2:E8=L2)+(F2:F8=L2)))

追问

是固定6个数。不需要在意顺序,只要满足包含这个条件即可,谢谢

追答

固定顺序就简单了,不固定的话,也可以解决,但是公式挺长。

我就按不固定顺序给你解决一下,先看下面的模拟图:

G2单元格公式为:

=IF(ISNUMBER(MATCH(A2,I$2:M$2,))+ISNUMBER(MATCH(B2,I$2:M$2,))+ISNUMBER(MATCH(C2,I$2:M$2,))+ISNUMBER(MATCH(D2,I$2:M$2,))+ISNUMBER(MATCH(E2,I$2:M$2,))+ISNUMBER(MATCH(F2,I$2:M$2,))>=5,"包含","否")

然后选中G2,下拉填充公式,即可。

注意看第8行,这行数据不但是乱序,而且还被其它数字隔开了,这样的也能得出"包含"。

追问

感谢详尽的回答,这样得出的结果是单行包含数值对比,我想知道的是:显示为“包含”的单元格数量,这样仍需用COUNTIF公式再统计。有没有一个公式可以直接得出数值“3”(在区域中有三行符合全包含条件),再次请教,谢谢!

追答

用公式的话,如果不要辅助列,那就不好搞了。
上面还这样搞,G列算是辅助列就行了,然后用=COUNTIF(G2:G8,"包含")这条公式来统计一下就可以了。

如果不用辅助列,想直接得出统计数字,那么就得用VBA代码来解决了。

追问

非常感谢:-)

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-02-23

如果数据少,用sumproduct就可以(可以参考其他同学的答案,我不写了)

如果数据多,有几万或几十万行,那么用excel的power query是强项。建议把excel升到2016版以上,自带此功能。

1、先将原始表建立一个查询

增加一列,内容直接为=“a"

直接点“关闭并上载”右下角的箭头,选“关闭并上载至……”

再对要检测的数据建立第二个查询

也同样加一列,内容为="a"

将表2与表1进行关联

合并后,在上图中文字右上角有一个双箭头,点一下打开,选中除了“自定义”以外的所有列,最后结果会多出六列,结果如下图

再添加一个自定义列

内容是:List.ContainsAll({[表1.A],[表1.B],[表1.C],[表1.D],[表1.E],[表1.F]},{[检测数A],[检测数B],[检测数C],[检测数D],[检测数E]})

意思是,在A-F列中,必须包括有检测数A-E,是就显示true,否就显示false

筛选所有true结果的内容,再删除所有没有用的列,

结果如下

如果这样就行了,可以忽略下一步,如果要统计有几行,继续

选统计信息中的“值计数”

再转换到表,改列名为“计数”,再点“开始”的“关闭并上载到……”(同图4),把位置放在原表的位置边上就可以了。

以后每次改了前面两张表的内容,只要在绿色的表上右键点一下,刷新就可以得到新的结果了,对于海量数据特别有效。

追问

非常感谢您如此详尽的回答,power query苦手的人还得再学习学习,再次感谢☆⌒(*^-^)v THX!!

第2个回答  2019-02-24

不知题主要求的“快速得出”后是要得到怎样的表示方法,是如图自动填充黄色背景吗?如是,那就可以用条件格式。方法如下:选择A2:F16,开始选项卡——条件格式——新建规则——使用公式确定要设置格式单元格,在为符合此公式的值设置格式(O)下面的框中输入:

=SUM(COUNTIF($I$2:$M$2,$A2:$F2))=5

格式:填充——黄色,确定,确定。效果如图:

如果要把选出后的结果提取到其他位置,也是可以的。

第3个回答  2019-02-23
在图中的G2单元格中输入:
=IF(COUNT(MATCH($I$2:$M$2,A2:F2,0))=5,1,0)
然后按Ctrl+Shift+Enter完成数组公式输入(编辑栏中会自动包上花括号)
然后下拉填充。
对G列求和,所得就是满足条件的行数。追问

感谢回答☆⌒(*^-^)v THX!!

第4个回答  2019-02-23
似乎没有什么快速的办法。
excel本身在处理集合方面不是很强大。
建议用VBA来处理较好。
看你表中数据似乎行有序(每行数据从小到大排列),那么也可以考虑用函数来实现,即最大的数在最后两列,最小的数在最前两列。追问

感谢回答☆⌒(*^-^)v THX!!

在Excel中,有几行数据,怎样快速得出含有某个特定组合的数据的行数?
=SUMPRODUCT(((A2:A8=H2)+(B2:B8=H2)+(C2:C8=H2)+(D2:D8=H2)+(E2:E8=H2)+(F2:F8=H2))*((A2:A8=I2)+(B2:B8=I2)+(C2:C8=I2)+(D2:D8=I2)+(E2:E8=I2)+(F2:F8=I2))*((A2:A8=J2)+(B2:B8=J2)+(C2:C8=J2)+(D2:D8=J2)+(E2:E8=J2)+(F2:F8=J2))*(...

Excel怎么筛选从多个列筛选出特定条件的行?
1. 打开包含数据的Excel表格。2. 选择数据区域:单击并拖动鼠标来选择包含数据的区域,或者按下Ctrl + Shift + 右箭头来选择整个数据区域。3. 启动筛选功能:在Excel的顶部菜单栏中选择"数据"选项卡,在"筛选"功能区中点击"筛选"按钮,或者直接使用快捷键Ctrl + Shift + L。4. 显示筛选条件:在每...

Excel中怎么抽取含某一字段的行?
1、首先选中你所要编辑的单元格。2、然后点击菜单栏中的“数据”。3、其次点击“筛选”。4、然后在文本编辑栏中点击旁边的小三角符号。5、其次点击“文本筛选”。6、然后点击“包涵”选项。7、在文本框内输入想要筛选的相同内容。(这里以学生姓名张三为例)。8、然后点击“确定”。9、这样就得到了...

Excel中在许多行中怎么提取有某个数字的一行?谢谢~!~
1、分别填充在A列到K列共11列,第1行到第5行共5行中 2、提取条件应判断为同时含有2和4两个数值的行,而非数字(若为数字则含有22和44的行都为合格的行了)提取方式:1、L1中输入公式:=IF(AND(ISERROR(MATCH(2,A1:K1,0)),ISERROR(MATCH(4,A1:K1,0))),"条件不成立","同时包含2和4"...

Excel怎么选中特定的一行或者一列数据?
3. 使用筛选功能选择:- 如果想要从大量数据中筛选出符合特定条件的内容,可以使用Excel的筛选功能。点击列标题旁的筛选按钮,根据需要选择筛选条件,Excel会自动筛选出符合这些条件的数据行。同时支持多列筛选和高级筛选功能,可以更加灵活地选择特定内容。三、注意事项:在进行选择操作时,要确保数据处于未被...

EXCEL如何根据某列数据,批量提取该列数据对应的行数据。
1、新建一个excel工作表。2、输入数据,实际之中,很多这样的例子,因为前提没有考虑好排版,都是后期处理很费时,要求将大量一列的数据,整理为两列, 隔行提取 3、别人给了礼金,最起码我们好整理好,方便预览,首先在D2输入公=INDEX(A:A,ROW(A1)*2-1)确定得到我们想要的结果 4、将D2公式...

excel怎样快速获取指定的单元格行号和列号?
在Excel中,要快速获取指定的单元格行号和列号,可以使用内置的ROW函数和COLUMN函数。首先,ROW函数用于返回单元格的行号。如果你想要获取某个特定单元格的行号,可以在另一个单元格中输入`=ROW`。例如,如果你想要获取F9单元格的行号,可以在另一个单元格中输入`=ROW`,然后按Enter键,Excel就会返回F9...

excel中怎么设置提取指定列目标的行数据?
使用高级筛选进行筛选即可。如图所示:

Excel怎么筛选每行中含有某关键字的数据..
5、打开需要筛选重复数据的excel表格,选中数据内容后点击数据选项。点击筛选后打开单元格中的倒三角,点击文本筛选选择包含。在文本框中输入关键字,点击确定即可筛选出重复内容。6、没有具体的数据,所以很难给出一个最佳的方法。但琢磨用数据透视表是一个简单易行的方法。透视表中把关键词所在的列拖到...

excel 查找多列数据中的某个数值,统计出现这个数值的行数?
H1填入查找值,H2显示对应编号数量 改变H1,H2也相应改变 H2输入 =SUMPRODUCT(N(COUNTIF(OFFSET(B1:E1,ROW(1:5),),H1)<>0))

相似回答