Microsoft Excel - 条件格式,以匹配列中的单元格到不同列的同一行中的单元格

时间:2018-06-06 14:12:17

标签: excel excel-2013 conditional-formatting

我在Excel 2013中创建了一个工作簿,我的工作中的每个工程师都必须使用它来检查输入到系统中的数据。我们可以将文件导出到XLS中,并创建了一个宏来拉取所有数据和条件格式以显示需要修复的“错误”。

我们正在对工作簿进行版本控制,为此我想尝试一些更复杂的公式来检查数据。在一次检查中需要交叉检查多个列,因为它们应该匹配。这意味着我需要一个格式化规则来查看列中的任何给定单元格,并检查相同行中的其他单元格,但不同的列,并确保它们匹配..

例如: A列是标签ID文本,在这种情况下,它表示1 - 1.5“HDPE。 B列是Duct Count,为1 C列是风管尺寸,1.5“ 和D列是管道类型,它是HDPE。

我使用Label ID文本来获取字符串的3个独立部分,并将其与其他列匹配。如果不是,则突出显示不匹配的B-D列。我手动创建了一个我需要它做的例子。

示例:

Example:

2 个答案:

答案 0 :(得分:1)

所以这涉及使用字符串,特别是函数LEFTRIGHTMID,并且还要注意你如何比较项目。

这一切都涉及到如何在第一列中将值与字符串分开时一丝不苟。为了测试你的所有功能,开始使用空单元格慢慢建立公式来组装整体逻辑。

在确定您的风管计数时,您可以看到您想要"短划线字符左侧的数字"。所以你会这样开始......

=FIND("-",A2)

您只需要短划线左侧的字符,因此请使用LEFT功能

=LEFT(A2,FIND("-",A2))

返回1 -的值,但您不想包含短划线,因此减去一个。

=LEFT(A2,FIND("-",A2)-1)

现在,如果您将此值与B列中的风管数量进行比较,那么您将获得

=LEFT(A2,FIND("-",A2))=B2

其值为FALSE。这是因为你构建的LEFT函数的结果是一个字符串" 1"而不是一个数字。因此,使用另一个函数将其转换为数字

=NUMBERVALUE(LEFT(A2,FIND("-",A2)-1))=B2

现在您获得TRUE的正确结果。

因此,突出显示单元格B2:B5并选择条件格式 - >新规则。然后选择"使用公式确定要格式化的单元格"。然后输入您的公式(整个= NUM​​BERVALUE项)并选择您的格式。你完成了这一专栏。

继续研究如何分隔其他列的值。如果您有更多问题我们可以提供帮助。

答案 1 :(得分:0)

请清除ColumnsB中的任何现有CF:D,选择它们和HOME>样式 - 条件格式,新规则...,使用公式确定要格式化的单元格格式化此公式的值:

=NOT(OR(B1=--LEFT($A1,FIND("-",$A1)-2),B1=MID($A1,FIND("-",$A1)+2,FIND("-",$A1)+1),B1=MID($A1,FIND("""",$A1)+2,LEN($A1))))  

格式化... ,选择格式选择,确定确定