超难的excel问题
要把两行之间差且只差一个数字的找出来。
9个数字,每个数字占一列,所以,共九列
举例,
第一行, 1,1,2,5,6,72,4,3,2
第二行, 1,1,9,5,6,72,4,3,2
第三行, 1,1,2,5,6,72,4,3,2
.。。。
第一百行, 1,1,2,5,6,72,4,3,37
结论,第一行与第二行, 差且只差一个数字,在位置三
第一百行与第三行, 差且只差一个数字,在位置九 展开
给个实例来看看
懂你的意思了
我是在excel2007上完成的
即使如此,当条目过多时,可能需要修改公式,但是基本原理是不变的
首先假设了这样的架构
数据A列从1-14行,B列从1-14
我把9个数字组合在了一起,进行数值判断
A16-A29,B15-O15,做了一个矩阵
具体看图,没截图完整,可以自己想象
然后在B16=IF(AND(VLOOKUP($A16,$A$1:$G$14,2,)-VLOOKUP(B$15,$A$1:$G$14,2,)<>0,MOD(VLOOKUP($A16,$A$1:$G$14,2,)-VLOOKUP(B$15,$A$1:$G$14,2,),LEN(TEXT(ABS(VLOOKUP($A16,$A$1:$G$14,2,)-VLOOKUP(B$15,$A$1:$G$14,2,)),"0")-1)*10)=0),1,IF(AND(VLOOKUP($A16,$A$1:$G$14,2,)-VLOOKUP(B$15,$A$1:$G$14,2,)>0,VLOOKUP($A16,$A$1:$G$14,2,)-VLOOKUP(B$15,$A$1:$G$14,2,)<9),1,0))
然后把公式复制到整个矩阵里,显示为1的就是满足条件的两行
还是不懂Hi我,我把excel表传给你
没报兼容性错误,我在2007上运行是可行的
=IF(OR(ABS(A2-A1)=1,ABS(A2-A1)=10,ABS(A2-A1)=100,ABS(A2-A1)=1000,ABS(A2-A1)=10000,ABS(A2-A1)=100000,ABS(A2-A1)=1000000,ABS(A2-A1)=10000000,ABS(A2-A1)=100000000),"差","")
=(MID(A1,1,1)<>MID(A2,1,1))+(MID(A1,2,1)<>MID(A2,2,1))+(MID(A1,3,1)<>MID(A2,3,1))+(MID(A1,4,1)<>MID(A2,4,1))+(MID(A1,5,1)<>MID(A2,5,1))+(MID(A1,6,1)<>MID(A2,6,1))+(MID(A1,7,1)<>MID(A2,7,1))+(MID(A1,8,1)<>MID(A2,8,1))+(MID(A1,9,1)<>MID(A2,9,1))
数值为1的就是你要找的单元
方法比较笨 抛砖引玉 看看别的高手怎么做 呵呵
改进一下:
=SUM(IF(MID(A4,{1,2,3,4,5,6,7,8,9},1)<>MID(A3,{1,2,3,4,5,6,7,8,9},1),1,""))
看了补充 反而更不明白了
楼主的意思是要每一行都互相比对么?
那第二行和第100行就不止一处不同了
如果你有4000个数据
比对出来的数据将是4000*4000个
估计EXCEL难以胜任了......
B2输入公式
=if(ABS(len(A1)-Len(A2))=1,1,"")
B2公式向下复制
这时,你要求的,在B列显示1