EXACT函数的应用及使用实例
EXACT函数检查两个文本字符串是否完全匹配,包括大写和小写是否相同,但忽略格式上的差异。如果文本字符串完全相同,那么函数的结果是TRUE;如果不完全相同,那么结果是FALSE。
在什么情况下使用EXACT函数?
除了检查两个单元格看是否其内容完全相同外,可以使用EXACT函数来完成下列任务:使用数据有效性阻止改变单元格;在数据有效性单元格中强制大写输入;在代码列表中检查是否完全匹配;在查找表中找到完全相同项;在列表中统计完全匹配项;查清两个单元格之间的不同;进行区分大小写的比较。
EXACT语法
EXACT函数的语法如下:
EXACT(text1,text2)
Text1是第1个文本字符串;Text2 是第2个文本字符串
可以输入单元格引用或文本字符串作为text1和text2参数。在Excel 2007中,EXACT函数最大字符串长度是32767个字符。
EXACT函数也处理数字值和逻辑值。
示例1:
示例2:
EXACT陷阱
在Excel 2007帮助里,EXACT函数的备注部分有下列说明:
“可以使用双等号(==)比较操作符代替EXACT函数来进行精确的比较。例如=A1==B1与=EXACT(A1,B1)返回相同的值。”
这是不正确的。在Excel中没有“双等号”操作符,这份备注在Excel 2010帮助里已经删除。
示例1:测试密码
已经在工作簿中某工作表单元格输入了一个隐藏的密码,并且将该单元格命名为“pwd”。用户输入密码,并且将他们的输入与“pwd”单元格的内容进行比较。
在下图中,隐藏的密码在单元格C2中,该单元格被命名为“pwd”。这在名为AdminData的工作表中,隐藏该工作表从而使其不被最终用户所见。
在另一工作表中,用户输入密码,你使用EXACT函数进行测试。
在Ex01工作表中,用户在单元格C3中输入密码。
在单元格C4中,等号操作符将C3中的值与pwd单元格中的值进行比较:=C3=pwd
在单元格C5中,EXACT函数将C3单元格与pwd单元格进行比较,包括大小写:=EXACT(C3,pwd)
如果两个单元格中的内容相同,包括大小写也相同,C5单元格显示TRUE。任何的格式差异,例如粗体,都将被忽略。
如果内容有差异,即使一个字母存在大小写不同,C5单元格将显示FALSE。
示例2:允许修改单元格
用户输入正确的密码后,就允许修改工作表中指定的单元格。例如,在单元格C5中自定义数据有效性公式能控制修改每日利率。
在数据有效性对话框中使用下列公式,仅当C3中输入的密码与pwd单元格中隐藏的密码完全相同时,用户可以在单元格C5中输入值。同时,C5中输入的值必须大于0且小于0.1。
=AND(EXACT(C3,pwd),C5>0,C5<0.1)
示例3:强制大写输入
在数据有效性中也可以使用EXACT函数来确保在单元格中输入的字母全为大写。例如,Canadian邮政编码是预设的格式,带有交替的数字和大写字母,例如L9L9L9。
在单元格C2中,已经使用下列公式应用了数据有效性:=EXACT(C2,UPPER(C2))
如果输入了任何小写字母,那么将出现错误警告。这虽然不会阻止邮政编码中的所有错误,但将确保使用了大写字母。
示例4:查找列表中完全匹配项
代替简单地比较一个单元格和另一个单元格,可能需要在列表中寻找完全匹配项。如果某人在单元格中输入一个产品代码,和你的产品列表中的代码完全相同吗?
本例中,在单元格区域B2:B5中有一列产品代码列表,顾客可以通过在单元格E2中输入代码订购产品。
在单元格F2中的公式使用EXACT函数检查在单元格E2中输入的代码,看其是否与产品代码列表中的某个项目完全匹配。
注意:: 该公式作为数组公式输入,按 Ctrl+Shift+Enter 键。
{=OR(EXACT($B$2:$B$5,E2))}
示例5:从列表中提取完全匹配的名字
在查找表中,EXACT函数可以区分AA1和Aa1,返回与每个代码对应的正确的产品名。其它函数,像VLOOKUP函数,将那些代码看作相同的对待,并返回表格中第一个代码对应的产品名。
在本示例中,B2:B5单元格区域中有一份产品列表,顾客能够以单元格D2中输入其代码来订购产品。
在单元格E2中的公式使用了3个函数– INDEX函数、MATCH函数和EXACT函数:
EXACT函数检查在单元格D2中输入的代码,看看产品代码列表中是否有完全匹配项。
如果结果为TRUE,那么MATCH函数返回表的行号,在单元格区域的第2行找到了bG8943TO。INDEX函数返回单元格区域A2:A5的第2行中的值– Sam。
说明:该公式是数组公式,输入后按Ctrl+Shift+Enter
{=INDEX($A$2:$A$5,MATCH(TRUE,EXACT($B$2:$B$5,D2),0))}
示例6:统计列表中的完全匹配项数
在查找表中,EXACT函数可以区分AA1和Aa1,并且返回每个代码对应的正确的数量。其它函数,像COUNTIF函数,将那些代码视为相同的,返回所有不相同的代码的数量。
在本例中,单元格区域A2:A11中有一列项目列表,在C列中是唯一值列表。
在列D中的公式使用了2个函数 – SUMPRODUCT函数和EXACT函数:
EXACT函数检查在C列中输入的项目,看在列表项中是否有完全匹配项。
SUMPRODUCT函数基于结果为TRUE的数目返回总数。
=SUMPRODUCT(–EXACT($A$2:$A$11,C2))
说明:EXACT函数前面的两个减号将TRUE和FALSE值转换为1和0。
示例7:检查单元格中的每个字符
EXACT函数可以告诉两个文本字符串是否完全匹配,但是可能希望使用一种快速的方法来查看哪些字符是不相同的。在本例中,每个字符串有6个字符,数字1至6被作为列标题输入。
在单元格E2中的公式使用了3个函数 – MID函数和EXACT函数:
MID函数基于公式中列标题的数字从列A或列B中返回特定的字符。例如,在上面单元格C2中显示的公式中,每个字符串中的第一个字符被测试,因为单元格C1中的数字是1。
EXACT函数比较通过MID函数提取的两个字符。
=EXACT(MID($A2,C$1,1),MID($B2,C$1,1))