【问题标题】:Excel Instance ParsingExcel 实例解析
【发布时间】:2014-07-15 18:46:21
【问题描述】:

我在 Excel 工作表的一列中有一个数据“实例”列表。

每个实例可以有多个副本。这是一个例子:

abcsingleinstanceblah0001
cdemultipleinstanceexample0001
cdemultipleinstanceexample0002
cdemultipleinstanceexample0003
cdemultipleinstanceexample0004
....

很遗憾,编号方案并未在所有这些数据中保留。所以在某些情况下,副本会有随机数字。但是,根实例名称始终相同。

问题:创建一个解析这些实例列表并在一个新列中列出第二个副本之后的所有重复项的函数的好策略是什么?与上面的示例相关,新列将列出:

cdemultipleinstanceexample0003
cdemultipleinstanceexample0004

我需要保留每组重复项中具有最低整数值的两个重复项,这就是为什么在上面的示例中必须删除 3 和 4 的原因。因此,在随机数的情况下,具有最低整数值的两个实例。

我的想法

我正在考虑首先按字母顺序组织列,这应该会自动将重复项按升序排列。然后,我基本上可以从所有实例中删除数值,并从核心实例名称中找到超过 2 个精确重复的位置,这将为我提供具有超过 2 个重复的实例,以便我可以对原始数据执行功能设置...但我不知道是否有更好的方法来执行此操作或从这里去哪里。

我正在寻找基于公式的解决方案。

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案1】:

    假设您的排序列表在 A 列中,并且您有一行标题,您可以在相邻列中使用以下公式。

    在 B 中: =左(A2,LEN(A2)-4)

    在 C 中(虽然不是必需的): =RIGHT(A2,4)

    在 D 中从第 3 行开始: =IF(AND(B3=B2,COUNTIF(B1:B3,B3)>2),"Del","Keep")

    此公式不适用于第 2 行,但您可以对第一个结果进行硬编码。

    然后过滤 D 列的列表中的“Del”并删除所有行。

    怎么样?

    【讨论】:

      【解决方案2】:

      在 A 列中对您的列表进行排序。您需要列标题以供稍后使用,因此将它们放在第 1 行(或将其留空。在 B2 中,输入 =left(A2,len(A2)-4) 并向下拖动公式以去除整数。在C3 输入=vlookup(B3,$B$2:$B2,1,0)。在C3 中填充公式,向右一个单元格,然后向下填充数据的长度。现在在 D3 中,您将有一个列表,其中包含任何只有 2 个或更少实例的条目的错误,并且将具有 2 或更多的名称。使用 D 行上的过滤器对 #NA 进行排序将允许您删除少于两个条目的所有行。

      删除您的过滤器。然后以相反的顺序重新排列 A 列中的列表,使高数字排在第一位。将 C2 和 D2 的内容替换为 #N/A。重新筛选 D 列中除 #N/A 之外的所有内容的列表,并删除所有列出了实例的条目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 1970-01-01
        • 2014-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多