【问题标题】:Format a row based on partial matches from a list根据列表中的部分匹配格式化行
【发布时间】:2019-10-04 19:19:47
【问题描述】:

我有一个包含四张工作表的 Excel 工作簿。工作表 1 的第 1-150 行包含名称(文本)列表,工作表 2、3 和 4 是包含许多列的大型电子表格。

我需要一个公式:

  • 使用 A 列中的 150 名称范围,并查找前 4 个字符,即 LEFT(A1,4*) 以包含通配符。
  • 然后它使用它在工作表 2、3 和 4 中查找部分匹配项(可以在任何单元格中)。
  • 找到部分匹配后,会将行格式化为指定颜色(比如黄色)
  • 然后检查/格式化所有工作表中的所有行。

【问题讨论】:

  • 您尝试了什么 - 请发布您的代码?

标签: excel formatting conditional-statements lookup


【解决方案1】:

你可以使用 FIND,语法:

=FIND(find_text, within_text, [start_num])

使用它来查找名称字符串的特定部分,即

=IF(FIND(LEFT(A1,4),A1)=TRUE,1,0)

如果我正确理解了您的 OP,这应该可以解决您的问题。 IF 部分可帮助您返回布尔结果,这使得应用条件格式变得容易。上面的示例将被插入到您的姓名列右侧的列中..

不过,下次您应该展示您尝试过的内容并发布您的代码。这不是一个免费的代码论坛.. 最好的问候。

【讨论】:

  • 感谢您告知我这不是免费代码论坛。
  • 我已经很好地利用了您指定的代码解决方案并进行了一些工作。 =IF(ISERROR(FIND(LEFT(A$118,4),"Sheet1!")), 1, 0) 所以在这里我试图允许它搜索的文本可能是不同的大小写,因此 ISERROR, Sheet1 I希望会在不输入范围的情况下指示第一张表的所有内容。目前,即使另一张纸上没有匹配的文本,我也会得到 1(真)结果。有什么建议吗?
  • 很高兴听到!很好地解决了可能的不同情况
  • 从上一个开始我现在有了这个; =IF(ISERROR(FIND(LEFT(A118,4),Sheet1!$A$2:$BW$97)), 1, 0) 遗憾的是,无论是否实际存在搜索条件,所有结果都是 1。 Grr。由于搜索源中有多个名称,因此最好搜索每个单词的前四个字符(直到搜索完所有单词)。然后返回匹配的四个字符以及匹配的工作表。超出我的联盟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 2017-03-07
  • 2020-10-28
  • 2021-09-08
相关资源
最近更新 更多