2016-11-09 29 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 
相關問題