【问题标题】:Microsoft Excel - Conditional Formatting to match cell in column to cell in same row of different columnMicrosoft Excel - 条件格式以将列中的单元格与不同列的同一行中的单元格匹配
【发布时间】:2018-06-06 14:12:17
【问题描述】:

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

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

例如: A 列是标签 ID 文本,在本例中为 1 - 1.5" HDPE。 B 列是 Duct Count,即 1 C 列是管道尺寸,即 1.5" D 列是管道类型,即 HDPE。

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

例子:

【问题讨论】:

  • 欢迎来到 SO。到目前为止,您尝试过什么?
  • 我以前从未尝试过创建查看文本字符串的代码。我在各种论坛上查看了其他类似的问题以寻求答案,但没有什么能真正指出我想去的地方。我很抱歉在没有尝试的情况下提出这个问题。页面上的所有其他 CF 都是 ISBLANK,单元格包含值,或者我让它参考我们填写总括信息的第一个工作表(如果它不匹配它突出显示)
  • 整个工作簿中最复杂的条件格式公式是“=Formulas!$B$9”,非常简单。

标签: excel excel-2013 conditional-formatting


【解决方案1】:

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

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

在计算管道数时,您可以看到您想要“破折号左侧的数字”。所以你会这样开始......

=FIND("-",A2)

你只想要破折号左边的字符,所以使用LEFT函数

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

返回值1 -,但您不想包含破折号,所以减去一个。

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

现在,如果您将此值与 B 列中的 Duct Count 进行比较,您将得到

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

它给出了FALSE 的值。这是因为您构建的LEFT 函数的结果是字符串“1”而不是数字。所以使用另一个函数将其转换为数字

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

现在你得到了TRUE的正确结果。

所以突出显示单元格 B2:B5 并选择条件格式-->新规则。然后选择“使用公式确定要格式化的单元格”。然后输入您的公式(整个 =NUMBERVALUE)并选择您的格式。您已经完成了该列。

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

【讨论】:

  • 这完全符合我对特定行的需要!现在,问题是,无论单元格编号是多少,都可以对整个列执行此操作吗?就像,我需要所有的 A 来检查所有的 B-D,那是在一个动态范围内。导出每次都会提取一些新的功能,无论如何我都需要它来检查所有这些功能。不过,其他所有条件格式规则都没有这条规则那么复杂。它只是 ISBLANK,或单元格值包含类型公式。我会支持你的答案
  • 即使公式使用 A2 和 B2,如果将其应用于所有 B 列,它将起作用(Excel 会自动替换公式中的适当行号)。对于其他列,只需逐步了解如何提取和比较适当的字符串值。
  • 我成功了!非常感谢,抱歉回复晚了。
【解决方案2】:

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

=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))))  

Format...,选择格式选择,OKOK

【讨论】:

  • 公式有多复杂,但它是有道理的,因为它必须在一串文本中找到特定的部分。感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-05
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 2016-10-16
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多