excel 对于每个ID,仅保留两列中具有最小值的行

jhkqcmku  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(159)

对于每个ID,在C列和D列中找到最小值,并删除其他行。
我想要的解决方案,只是因为我想建立在这个代码添加更多的标准。

标准为:

每个ID找到最低value1并保留整行,对于每个ID,也找到最低value2并保留整行。
如果value1和value2的最低值在同一行中,则删除其他行。

我已经尝试修改下面的代码,但它只适用于1列重复。
我想到的一个解决方案是突出显示Value1和Value2的每个ID的最小值的整行,然后删除未突出显示的行。

Sub test()
ActiveSheet.Range("A:D").RemoveDuplicates Columns:=Array(3, 4), Header:=xlYes
End Sub
k75qkfdt

k75qkfdt1#

好的,我已经找到了一个解决方案......但是它可能比手动操作要复杂得多,这取决于您的数据大小以及您需要多久执行一次操作。

**0)**删除整行重复:

筛选所有

**1)**将值1和值2相加:

然后,按V1 + V2排序,然后按ID号重新排序。
这将确保我们只返回1,有两个单一的最小值。
(示例见答案末尾)

**2)**检查值1和值2是否为ID号的最小值:

第一个月
=D2=MIN(FILTER($D$2:$D$24,$A$2:$A$24=A2))

**3)**运行AND()操作以查看两者是否均为最小值

**4)**运行OR()操作,查看是否为最小值。

=IF(SUM(FILTER($H$2:$H$24,$A$2:$A$24=A2))>0,0,IF(SUM(FILTER($I$1:I1,$A$2:A2=A2))<2,IF(OR(F2:G2),1,0),0))

**5)**最后,筛选具有AND或和OR的项目列表:

=FILTER(A2:D24,(H2:H24=1)+(I2:I24=1))

需要注意的是,如果不排序,可能会拉错。下面是排序:

这是未排序的:

相关问题