【问题标题】:Search for more than one word in one cell在一个单元格中搜索多个单词
【发布时间】:2014-03-23 10:14:39
【问题描述】:

我有一份患者名单,其中包含他们所进行的所有程序的代码,例如K567H765Y234。我想一起搜索程序列 (J) 中的所有单元格以查找两个不同的程序。因此,对于上面的示例,如果它同时具有 K567H765,我希望将整行复制到另一个电子表格。例如

患者编号-入院日期-诊断-程序代码 1- 1/1/14- K47- K567,H763,Y239,Y876 2- 1/1/14- K47- K567,H769,Y233,Y874 3- 1/1/14- K47- K567,H761,Y231,Y874 4- 1/1/14- K47- K567,H765,Y239,Y876 5- 1/1/14- K47- K567,H765,Y233,Y876

我的程序标准为Y874K567,理想情况下,新工作表应为:

患者编号-入院日期-诊断-程序代码 2- 1/1/14- K47- K567,H769,Y233,Y874 3- 1/1/14- K47- K567,H761,Y231,Y874

我要处理 4000 名患者。

为了使事情复杂化,我有一系列代码,所以我想要 Y871Y872Y873Y874 而不是 Y874K567Y875Y876K567

如果这是不可能的,任何让我的生活更轻松的变化将不胜感激!

【问题讨论】:

    标签: excel search full-text-search multiple-columns


    【解决方案1】:

    使用正则表达式 (Regex) 的 Vba 用户定义函数将允许您执行此操作,只需将您的正则表达式模式设置为类似于字母-数字-数字-数字。然后,您可以查找匹配项。计数 >1。

    编辑 - 否决此回复的人 - 您愿意解释原因吗?简单地在没有解释的情况下投反对票无助于找到问题的最佳解决方案。

    【讨论】:

      【解决方案2】:

      看图片,为了清楚起见,我在同一个工作表中做了。

      要查找的程序代码在 F1:F2 中

      在G2中写入数组公式(Ctrl Shift Enter进入这个公式):

      =IFERROR(SMALL(IF(ISNUMBER(SEARCH($F$1;$D$2:$D$6))+ISNUMBER(SEARCH($F$2;$D$2:$D$6))>1;ROW($A$2:$A$6)-ROW($A$2)+1;"");ROWS($A$2:A2));"")
      

      复制这个公式,直到你确定它可以覆盖尽可能多的匹配项。

      现在在 H2​​ 中写下公式:

      =IF($G2="";"";INDEX(A$2:A$6;$G2))
      

      将公式向右复制到 K2,然后随意向下复制(就像第一个公式一样)

      根据您的区域设置,您可能需要替换字段分隔符“;”由“,”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-02-28
        • 1970-01-01
        • 2018-03-17
        • 1970-01-01
        • 1970-01-01
        • 2015-07-13
        • 2021-02-17
        相关资源
        最近更新 更多