【问题标题】:EXCEL: Search column for multiple strings, and give cell(s) of mismatch(es)EXCEL:在列中搜索多个字符串,并给出不匹配的单元格
【发布时间】:2013-03-09 13:18:49
【问题描述】:

我想在整个列中搜索与我定义的可用类型相比的不匹配(我犯的类型错误)。如果有任何不匹配,我希望在下面的单元格中显示该不匹配的单元格。

所以这就是我所拥有的(出于隐私原因,我用同义词替换了实际类型,显然它们没有命名为 type# irl):

E 列:E

  • type1 (E1)
  • type5 (E2)
  • type3 (E3)
  • 类型 3 (E4)
  • type7 (E5)
  • tipe2 (E6)
  • type9 (E7)
  • (E8)
  • type3 (E9)

K2 栏:K10

  • type1 (K2)
  • type2 (K3)
  • type3 (K4)
  • type4 (K5)
  • type5 (K6)
  • type6 (K7)
  • type7 (K8)
  • type8 (K9)
  • type9 (K10)

例如,我在单元格 E6 中创建了类型错误“tipe2”,并在单元格 E8 中添加了一个空行。 现在我想要一个公式,当 E:E 列中的某些内容与 K2:K10 列中的一种类型不匹配时显示“错误”,否则不打印任何内容或“未找到错误”。 同时我想在一个单独的单元格中显示不匹配单元格的坐标(在本例中为 E6)。

我已经得到了获取不匹配单元格的部分,其中 my_string 应该替换为已找到的不匹配字符串:

="E"&MATCH("my_string",E:E,FALSE)+IF(COUNTIF(E:E,"my_string")=1,0,COUNTIF(E:E,"my_string")-1)

PS:我不想要 VBA 脚本!我只想要两个单元格内的公式。看看我是否犯了不匹配,如果我确实犯了不匹配,我想要单元格的坐标(或者当发现多个不匹配时,最后一个单元格的坐标)。

【问题讨论】:

    标签: excel text position excel-formula mismatch


    【解决方案1】:

    您可以使用所谓的数组公式来实现这一点。作为说明,我在这张图片中模拟了你的情况:

    重要的单元格是H1,其中包含E 列中违规单元格的索引。为了简单起见,我介绍了两个命名范围items,包含单元格E1:E9lookup,其中包含单元格K2:K10H1中的公式是

    =MAX(IF(ISBLANK(items),0,IF(ISERROR(MATCH(items,lookup,0)),ROW(INDIRECT("1:"&ROWS(items))),0)))
    

    这是一个数组公式,也就是说你必须用Ctrl-Shift-Enter确认。如果你做对了,公式会在它周围显示大括号——你不需要自己输入。此公式遍历名为 items 的范围内的所有单元格,为所有空白单元格或在名为 lookup 的范围内匹配的所有单元格创建一个值为 0 的数组。对于其余单元格,插入的值等于行号。然后取最大值。

    因此,H1 将包含最后一个违规项目的索引。如果所有项目都OK,则显示值0。

    单元格G1 显示Error(如果发现任何违规项目),否则显示OK。公式是

    =IF(H1=0,"OK","Error")
    

    最后,I1 显示了实际的违规项目

    =IF(H1>0,INDEX(items,H1),"")
    

    如果您不想使用命名范围,请将items 替换为$E$1:$E$9,将lookup 替换为$K$2:$K$10

    如果违规单元格是一个空单元格,那么I1 将包含值 0。

    我认为H1中的值对分析很有用,但如果你不想要它,你可以隐藏它。或者您可以将该公式折叠到G1I1 中使用的公式中,但公式会变得相当复杂。

    包含此答案的工作簿已上传here

    附带说明:您是否知道可以使用带有下拉列表的 Excel 数据验证功能来避免您正在查看的这些类型的拼写错误。这可能对你有用。文章Drop-Down Using Data Validation in Microsoft Excel中给出了一个例子

    【讨论】:

    • 这看起来已经很棒了!但是是否有可能以某种方式排除空单元格给出 MATCH 公式的错误,所以当单元格为空时它不会给出 #N/A 错误,但当类型错误是制作。我知道有 ISEMPTY 公式,但我不知道如何将它放入单元格 H1 中的公式中。
    • H1 中的调整公式现在允许空白单元格,它们不会导致显示“错误”。给出了一些关于公式如何工作的额外解释。我还稍微改进了I1 中的公式,以便在没有错误的情况下保持空白。最后,我添加了关于数据验证的注释。希望这会有所帮助。
    • 上传的示例文件也反映了最新的答案。
    • 非常感谢,下拉菜单确实更容易避免那些拼写错误。
    【解决方案2】:

    最简单的方法是;使用过滤器“不包含”

    Excel 2010 解决方案,与 2003 类似

    • 选择整列
    • 选择数据
    • 选择过滤器
    • 选择过滤器选项(列顶部的三角形)
    • 选择文本过滤器
    • 选择不包含
    • 输入类型
    • 根据需要修改并重新运行。

    【讨论】:

    • 谢谢,这已经是朝着正确方向迈出的一大步,我确实可以检查整个专栏是否有我犯的类型错误。虽然我仍然想要第一个公式,所以我知道什么时候出现不匹配并需要检查过滤器。因为我每天都会在表格中添加很多内容,所以我每天都检查过滤器会更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2021-03-15
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多