2016-04-25 4 views
0

私は2つのタブを持つExcelスプレッドシートを持っています。 最初のタブには、販売日を含む日付範囲の顧客アイテムの販売があります。 ので1STタブ上の列ですExcel - アカウント/アイテム値ペアの最新の値を引き出す

CUSTOMER | ITEM | DATE | QTY | PRICE | EXTENSION

試験データ:

Customer No. Date  Item  Qty Ship Price Ext. 
100207  8/19/2015 7044503 3  90.85 272.55 
100207  8/12/2015 7044503 10  90.85 908.5 
100207  8/12/2015 7044504 16  91.99 1471.84 
100207  7/31/2015 7044505 9  93.41 840.69 
100207  7/31/2015 7045427 2   73 146 
112179  7/22/2015 6951235 1  23.65 23.65 
112179  7/22/2015 6951235 1  23.65 23.65 
112179  7/15/2015 6951235 1  23.65 23.65 
112179   7/8/2015 6951235 1  23.65 23.65 
112179  6/30/2015 6951235 1  23.65 23.65 
112179  4/22/2015 0290130075 9  2.75 22.86 
112179  9/23/2015 0290130075 9  2.54 22.86 
112179   9/9/2015 0290130075 9  2.40 22.86 
112308   9/9/2015 VWR40101 1  451.00 451.00 
112308  8/31/2015 VWR40101 1  451.00 451.00 
112308  8/26/2015 VWR65020 3  186.00 558.00 
112308  8/12/2015 VWR65020 2  167.75 335.5 
112308  7/31/2015 VWR65020 2  175.00 350.0 
112308  7/22/2015 VWR65020 4  177.75 711.0 

列第二タブには

CUSTOMER | ITEM | TOTAL SALES

試験データは以下のとおりです。

Customer No. Item  Total 
100207   7044503 1181.05 
100207   7044504 1471.84 
100207   7044505 840.69 
100207   7045427 146 
112179   6951235 118.25 
112179   290130075 68.58 
112308   VWR40101 902 
112308   VWR65020 1954.5 
Grand Total     6682.91 

私は LAST SALE PRICE

のために第二のタブに別の列を追加しようとしている私はそれはおそらくMAX()MATCH()、AND VLOOKUP()のcomination知っているが、私は私の目標を達成するためにそれらを一緒に入れてするかどうかはわかりません。

ありがとうございます!

+0

をいくつか提示してください数式をテストするために使用できるテストデータ。 –

+0

「最終販売価格」とは、「最大」日付(つまり最新の日付)の価格を意味しますか? – BruceWayne

答えて

2

レギュラー(非配列)式、あなたのデータを合わせて範囲を調整:

=INDEX(Sheet1!$E$2:$E$20,MATCH(1,INDEX((Sheet1!$A$2:$A$20=A2)*(Sheet1!$C$2:$C$20=B2)*(Sheet1!$B$2:$B$20=MAX(INDEX((Sheet1!$A$2:$A$20=A2)*(Sheet1!$C$2:$C$20=B2)*Sheet1!$B$2:$B$20,))),),0)) 
+0

コメント、ピボットテーブルにMax(DATE)列を追加してINDEX/MATCH関数を利用しました。本当にありがとう :) – AlliDeacon

1

はテストするのは困難であるテストデータがなければ、この配列数式

=INDEX(Sheet1!$E$2:$E$100,MIN(IF((Sheet1!$A$2:$A$100 = A2)*(Sheet1!$B$2:$B$100 = B2)*(Sheet1!$C$2:$C$100 = MAX(IF((Sheet1!$A$2:$A$100 = A2)*(Sheet1!$B$2:$B$100 = B2),Sheet1!$C$2:$C$100))),(ROW(Sheet1!$A$2:$A$100)-1)))) 

を試してみてください。

配列式であるため、編集モードを終了するときにCtrl-Shift-Enterを押して確定する必要があります。正しく実行された場合、Excelは{}を数式の周りに入れます。

は、Excel 2010以降を使用している場合、あなたはこの数式を使用することができます。

=INDEX(Sheet1!$E$2:$E$100,AGGREGATE(15,6,(ROW(Sheet1!$A$2:$A$100)-1)/((Sheet1!$A$2:$A$100 = A2)*(Sheet1!$B$2:$B$100 = B2)*(Sheet1!$C$2:$C$100 = AGGREGATE(14,6,Sheet1!$C$2:$C$100/((Sheet1!$A$2:$A$100 = A2)*(Sheet1!$B$2:$B$100 = B2)),1))),1)) 
関連する問題