您好Excel和VBA大师。
我遇到了问题,我相信你可以帮助我:)。
在这种情况下:
我有一些产品,价格和商店的工作表。我需要找到价格最优惠的每件产品。
在工作表1中,我有来自商店的优惠:
在Worksheet2中,我需要列出所有产品的最佳价格和商店名称(只有价格最优的行,不加倍)
我打赌这不难做到,但我的excel技能非常糟糕(我不能告诉我的老板ofc :))所以我需要堆栈社区的帮助
答案 0 :(得分:1)
替换sheet1& sheet2包含您的源和目标表 -
表格(" Sheet1")&片(" Sheet2的&#34)
Application.ScreenUpdating = False
Sheets("Sheet1").Range("A3:C" & Sheets("Sheet1").Range("A50000").End(xlUp).Row).Sort Key1:=Sheets("Sheet1").Range("B3"), Order1:=xlDescending
Sheets("Sheet1").Range("A1:C" & Sheets("Sheet1").Range("A50000").End(xlUp).Row).Copy Destination:=Sheets("Sheet2").Range("A1")
Sheets("Sheet2").Range("A3:C" & Sheets("Sheet2").Range("A50000").End(xlUp).Row).RemoveDuplicates Columns:=1, Header:=xlNo
Sheets("Sheet2").Range("A3:C" & Sheets("Sheet2").Range("A50000").End(xlUp).Row).Sort Key1:=Sheets("Sheet2").Range("A3"), Order1:=xlAscending
Application.ScreenUpdating = True
答案 1 :(得分:1)
此公式将告诉您每个产品的最大产品,填入D列 - 使用cntl + shift + enter使其成为数组公式:
{=MAX(IF($A$2:$A$10=A2,$B$2:$B$10))}
然后,您可以使用它来确定最大值中的当前行是否填充在E列中:
=IF(D2=B2,1,0)
然后,您可以使用数据透视表并过滤columnE = 1