求一个excel公式
两列上的人名基本上是相同的,但同一个名字在A、B列中的位置却完全不一样,A列中可能在A10,但这个名字B列中可能在B100。这些名字中大约有20个左右有的只在A列中有,有的只在B列中有。如果通过排序的方式然后一个一个找出来,显然效率不高,如何把仅A列中有的和仅B列中有的筛选出来?让它高亮也行,变色也行。 展开
2020-10-16 · 知道合伙人软件行家
用宏表函数EVALUATE定义名称的方法只能是纯数字和运算符的算式,你的工程计算式中包含有不同的文字说明,所以是无法直接用来定义名称的。而你自己想当然的定义名称的公式中用SUBSTITUTE也公替换方括号,而方括号中的内容并没有替换掉,所以肯定是不行的。而要用SUBSTITUTE一个个来替换所有方括号及其中的内容,则因为内容各不相同,还不知道你不同的行中是否还会有更多的不同的内容。如果只两三个,还可以分别用SUBSTITUTE来多次替换,但多了肯定是极为麻烦的事。所以也不是可行的方法。
相对来说比较可行的方法是:把工程计算式列(E列)的数据复制后粘贴到Word中,在Word一次把所有方括号及其中的内容全部替换掉。如图,Word中,你E4中的计算式粘贴了两次,光标定位到第2次粘贴内容的前面,替换方式用“向下”,即只替换第2次粘贴的内容,以便于对照替换前后的计算式(实际替换中是要用全部方式的)。
按Ctrl+H,调出替换对话框,查找:
\[*\]
替换中什么也不输入,勾选“使用通配符”,按全部替换。即把光标开始处到文档结尾的所有方括号及其中的内容替换掉了。查找中内容的含义:\[*\]表示查找以[开头到以]结尾的所有内容,其中*表示任意字符,[和]前面加上\是因为[在Word查找替换中有特定的含义,查找它本身时,就要加上一个引导符“\"。
把Word中替换好的算式复制后,回到Excel中,在右侧某一空列中粘贴,如图,粘贴到I列中。这时就可以定义名称了,如定义为eng,引用中:=EVALUATE(!$I4)
在E列输入定义的名称,就可以得到工程量结果了:
E4=eng
C1
=IF(COUNTIF(B:B,A1),"",A1)
仅B列中有的
D1
=IF(COUNTIF(A:A,B1),"",B1)
一起下拉即可
正是我想要的,简单粗暴且有效,非常感谢。但提示公式错误,excel已自动纠正。我硬是没看出来纠正后的公式和你写的有什么不同,反正回车前显示了红色。
因为公式是在英文输入法状态下打出来的
应该就不会出错
既然你说了,我就在EXCEL2003、2010下试过不会提示出错
不知道你那里提示出错的原因
PS:能用的话请选择为最佳答案