分享

怎样让电子表格中有相同的值自动提出来

 谁与争锋(fhw) 2011-01-10
假定表格中A列是输入姓名的,现在A1单元格已经有一个姓名了,我要从A2单元格往下输入,要保证每次输入不重复,方法如下:

选中A2单元格,点击数据菜单->有效性,设置标签里面,允许一栏选为“自定义”,公式为:
=IF(ISBLANK(A2),TRUE,IF(ISERROR(VLOOKUP(A2,$A$1:B1,2,FALSE)),TRUE,FALSE))
点击确定,选中A2单元格,用鼠标往下拖动填充柄(填充柄:位于选定区域右下角的小黑方块。将用鼠标指向填充柄时,鼠标的指针更改为黑十字),填充完预定要输入姓名的区域即可。
现在试一下,在A2单元格以下的A列输入数据时,只要与前面任一单元格的内容一致,就会显示输入值非法的提示框,好了,任务完成。

好吧!把公式原理说一下,你就知道了。
上面的公式中,用填充柄进行填充后,假如是第88行,其数据有效性的判断公式相应填充为:
=IF(ISBLANK(A88),TRUE,IF(ISERROR(VLOOKUP(A88,$A$1:B87,2,FALSE)),TRUE,FALSE))
再来分析上面的公式,首先是用最外层的IF函数,判断条件是ISBLANK(A88),作用是先判断A88是否已填入数据,现在,如果要在A88中填入数据,哪ISBLANK函数为FALSE,IF转向后面的“IF(ISERROR(VLOOKUP(A88,$A$1:B88,2,FALSE)),TRUE,FALSE)”部份执行,这又是一个逻辑判断,条件是“ISERROR(VLOOKUP(A88,$A$1:B87,2,FALSE))”,这是公式的核心内容。首先来看VLOOKUP(A88,$A$1:B87,2,FALSE),这个函数的作用是从A1到B87的区域内,查找是否存在有与A88单元格的内容相同的单元格,有两种可能:
1、如果有的话(假定是A11),就返回B11单元格的内容,这时,ISERROR(B11)判断为FALSE,(ISERROR作用是判断是否为#N/A,如果是就返回TRUE,不是就返回FALSE),哪第二层IF函数返回值为FALSE,整个公式的值为FALSE,EXCEL的有效性判断为非法值,就会出现提示。
2、如果没有,“VLOOKUP(A88,$A$1:B87,2,FALSE)”就会返回一个错误值为“#N/A”,此时ISERROR函数结果为TURE,哪第二层IF函数返回值为TRUE,整个公式返回值TRUE,EXCEL的有效性判断为合法值,就可以输入了。

这样,C1295单元格的公式可设置为:
=IF(ISBLANK(C1295),TRUE,IF(ISERROR(VLOOKUP(C1295,$C$1:D1294,2,FALSE)),TRUE,FALSE))
注意,这里的$C$1:D1294区域是你电话号码表上的姓名列区域(从开始到你输入姓名上一行的内容),如果姓名是从第五行开始的,哪就应该改为$C$5:D1294。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多