Blair的工作表分为两个区域:数据输入和数据验证。数据验证区域由使用IF语句检查条目的公式组成。如果找到问题,则会在验证区域的单元格中显示一条文本消息,否则该公式将返回空白。以下是典型的验证公式:

=IF(A1<>5,"Value in A1 is not 5")

问题在于数据验证区域可能很大,这意味着很容易错过其中一条文本消息。布莱尔(Blair)想知道是否可以创建一种公式来检查数据验证区域,如果该区域中还有其他消息,则返回一条消息。

有很多解决此问题的方法。如果数据验证区域是连续的,那么一个简单的数组公式就可以解决问题。在工作表上的任何空白单元格中输入以下内容:

=SUM((LEN(ValRange)>0)*1)

确保将ValRange替换为数据验证区域中的单元格范围。另外,请确保按Shift + Ctrl + Enter输入公式(表示它是数组公式)。该公式返回一个值,该值指示该范围内有多少个单元格的长度大于0。换句话说,它计算具有可见消息的单元格数。

如果您不想使用数组公式,则可以使用以下常规公式来实现相同的结果:

=SUMPRODUCT((LEN(ValRange)>0)*1)

同样,结果是长度大于0的像元数。另一种方法是使用Excel提供的一些COUNT函数:

=COUNTA(ValRange) - COUNTBLANK(ValRange)

此公式计算范围内的单元格数量,然后减去该范围内的空白单元格数量。结果是非空白或正在显示消息的单元格数。可以使用不同的公式化方法来确定简单的是/否响应:

=IF(COUNTIF(ValRange,"?*"),"","No ") & "Verification Messages"

如果ValRange中没有消息,该公式将返回“无验证消息”。如果有消息,它将去除“否”并仅返回“验证消息”。

将条件格式应用于数据验证区域也是一个好主意。尽管到目前为止讨论的公式将告诉您是否有消息,但不会突出显示这些消息的位置-条件格式可以查明每条消息。选择包含公式的区域中的所有单元格,然后使用条件格式检查这些单元格的长度。如果长度大于0,则该单元格可以被格式化为显示红色背景。在工作表中滚动时,这将使数据验证区域中的任何消息都很难丢失。

如果您打算完全重新设计工作表,则更强大的方法是取消数据验证区域。

通过对每个输入单元格使用数据验证,可以达到相同的结果(检查数据输入区域中的内容)。正确设置后,数据验证将确保用户在每个单元格中输入可接受的值,从而消除了对许多数据验证区域的需求。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2772)适用于Microsoft Excel 97、2000、2002和2003。