网友提问:有多行多列的数据,要查找每行中有没有三个相连的数字,注:0=0,0也=10,如有:0125,0849,0179,这都是有三连数的,如果存在用1表示不存在用0表示,要用什么公式?

excel中如何找出每行中是否存在三个相连的数字?-趣帮office教程网

我给的参考:=OR(MMULT(COUNTIF(A2:D2,TRANSPOSE(A2:D2) {1,-1,9,-9}),{1;1;1;1})=2)*1

公式原理:

① =TRANSPOSE(A2:D2) {1,-1,9,-9},这一步得到A2:D2这个区域里的4个数,分别加上1、减去1、加上9、减去9,得到的一个二维数组

excel中如何找出每行中是否存在三个相连的数字?-趣帮office教程网

② =COUNTIF(A2:D2,TRANSPOSE(A2:D2) {1,-1,9,-9}),这一步是在A2:D2区域中统计刚刚得到的数组里面各元素的个数,得到的结果如下

excel中如何找出每行中是否存在三个相连的数字?-趣帮office教程网

此时有个逻辑,如果区域存在三连数例如1、2、3,那么它们的中位数2,它加上1和减去1也必然在该区域中存在,那么上面这个二组数组中某行必然存在一行有2个1才符合条件。此时可以用mmult函数将每行进行求和

③ =MMULT(COUNTIF(A2:D2,TRANSPOSE(A2:D2) {1,-1,9,-9}),{1;1;1;1}),这一步得到对上面数组每一行进行求和后的结果

excel中如何找出每行中是否存在三个相连的数字?-趣帮office教程网

④ 后面就很简单了,只要判断上面数组中有一个数=2,那么就是存在三连数,否则就是不存在,用OR函数即可,最后用*1转换为1和0

=OR(MMULT(COUNTIF(A2:D2,TRANSPOSE(A2:D2) {1,-1,9,-9}),{1;1;1;1})=2)*1

excel中如何找出每行中是否存在三个相连的数字?-趣帮office教程网