2016-11-09 28 views
0

嗨,Excel和VBA大师。Excel VBA如何在工作表中找到最佳价格并将所有行都放到另一个工作表中

我有一个问题,我敢肯定,你可以帮我:)

在这种情况下:

我有一些产品,它们的价格和商店工作。我需要以最优惠的价格找到每一件产品。

在Worksheet1我有报价从商店:

enter image description here

在Worksheet2我需要列出所有产品他们最好的价格和SHOPNAME(只有最优惠的价格行,但不加倍)

enter image description here

我敢打赌,这不是很难做到,但我的excel技能是非常低劣的(我不能告诉它我的老板:) ),所以我需要堆社区的帮助

+1

使用数据透视表 –

回答

1

此目标sheets-

公式会告诉你该产品最大的每个产品,在列d填充 - 使用CNTL + Shift + Enter键,使其成为一个数组公式:

{=MAX(IF($A$2:$A$10=A2,$B$2:$B$10))} 

然后,您可以用它来确定当前行中最大,填充在列E:

=IF(D2=B2,1,0) 

然后,您可以使用数据透视表和columnE过滤= 1

+0

谢谢你,它的工作 – Endriu

1

更换工作表Sheet1 & Sheet2中与源和表( “工作表Sheet1”)&表( “Sheet2的”)

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 
相关问题