【发布时间】:2017-03-24 03:24:54
【问题描述】:
我在尝试以准确和自动化的方式实现这一目标时遇到了麻烦。我已经尝试过here、here 和here 讨论的方法,但在我的场景中都没有。
我有一个包含数千行数据的电子表格。数据组织如下:
- A 列包含常规格式的 IP 地址
- B 列包含以下自定义格式的日期/时间 (d/mm/yyyy h:mm)
- C 列包含以下自定义格式的持续时间 (h:mm:ss)
根据 A 列中的 IP 地址,此数据包含我需要删除的多个重复项。但是,我需要的标准是删除不是持续时间最长的重复项。为了更好地解释我的场景,请参见下面的示例图片:
我需要一种方法来删除不包含该 IP 地址最长持续时间的特定 IP 地址的所有重复项。因此,使用上面的示例,第 3 行将被删除,因为 1 分钟的持续时间比包含相同 IP 地址的第 4 行中的 36 分钟短。
另一个例子是第 5、6 和 7 行也将被删除,因为它们的所有持续时间都短于具有相同 IP 地址但持续时间较长的第 8 行。当然,任何已经包含唯一 IP 地址的行都将被单独保留。使用我上面的示例的最终结果如下:
当然,在我上面的示例中,所有数据都很好地按 IP 地址第一和持续时间排序。在现实生活中并非如此,但如果有必要,在任何解决方案之前我都可以轻松做到这一点。
关键是,在某些情况下,一个 IP 地址可能会重复一次,而在其他情况下,它可能会重复多次。我只需要确保只剩下持续时间最长的那个。如果 IP 地址的多个实例具有相同的最长持续时间,那么我希望它们全部保留。也就是说,如果一个 IP 地址重复了十次,其中两次最长持续时间是一个小时,那么它们都需要保留。
我对任何解决方案都很满意,无论是使用公式、函数还是宏。
【问题讨论】:
-
所以日期不重要?
-
C列从大到小排序,并在A列上使用Excel函数“删除重复项”?编辑:不适用于您的最终标准(保持具有相同持续时间的重复项)。
-
如果日期无关紧要,并且您只是在
A列中查找唯一值,然后在C列中获取所有这些唯一值的max,那么您应该使用这篇文章获取所有唯一的 IP 值:stackoverflow.com/questions/40514343/…(因为 IP 值是文本值)。然后根据A列中的文本在C列中获取max,然后根据A列和C列的匹配在B列中获取date。
标签: excel excel-formula excel-2010 vba