2016-05-24 12 views
1

で最後の一意の行を取得します。は、私はこのように見ているテーブルを持ってるエクセル

id1 | id2 | dateUpdate 
========================================== 
    aaa | 111 | 2016-01-01 
    aaa | 111 | 2016-01-02 
    aaa | 222 | 2016-01-05 
    aaa | 222 | 2016-01-15 
    bbb | 333 | 2016-01-05 
    bbb | 444 | 2016-01-01 
    ccc | 111 | 2016-01-02 

私は、各ID1/ID2のカップルのためにのみ、最新の行を取得したいのですが:

id1 | id2 | dateUpdate 
========================================== 
    aaa | 111 | 2016-01-02 
    aaa | 222 | 2016-01-15 
    bbb | 333 | 2016-01-05 
    bbb | 444 | 2016-01-01 
    ccc | 111 | 2016-01-02 

ご協力いただきありがとうございます!

+0

[ピボットテーブル](http://www.contextures.com/xlPivot07.html)を参照してください。それらは、SQLで使用するのと同様のグループ化機能を持っています。 –

答えて

1

Screen shot showing function使用集計関数

=AGGREGATE(14, 6, 1/($A$2:$A$99=E2)*($B$2:$B$99=F2)*($C$2:$C$99), 1) 

あなたはF2が下方あなたは5ユニークな組み合わせ

COLUMN A  COLUMN B 

aaa   111 
aaa   222 
bbb   333 
bbb   444 
ccc   111 

を持って 列E2と列にユニークな組み合わせを配置する必要がありますし、集約目的球を入れされます列G2に移動し、下方に向かって塗りつぶす。

=AGGREGATE(14, 6, 1/($A$2:$A$99=E2)*($B$2:$B$99=F2)*($C$2:$C$99), 1) 

構文14については、例えば式#2016年2月1日# 次に桁6がすばやく取得することができ エラーを無視するためである最初のAAA 111の組み合わせのために大きい大きい値のためのものです疑似最後の値はAGGREGATE function.です。 これは、Ctrl + Shift + Enterを必要としない標準の非配列式です。 AGGREGATEは、Excel 2010 Aは、これは真の配列を与える論理値の配列に変換されるB &のユニークな組み合わせの列Aの最初の一意の値と一致するカラムの値

($A$2:$A$99=E2)チェックを導入しましたまたはFalse。これらの論理値で1を除算すると、1またはDIV#エラーが発生します。列Fに記載された列Bの値についても同様の処理が採用されている。データは99行に制限されている。行数が多い場合は、99の数値を要件に応じてより高い数値に変更します。彼のコメントに@Tim Biegeleisenにより示唆されるようにあなたはまた、ピボットテーブルの解決のために行くことができ HTH

EDIT 。ここに記載されているスナップショットはそのアプローチを示しています。

pivot table approach

id1id2フィルタフィールドとして取られるとdateUpdateの最大値は、値フィールドに選択されます。

+0

ありがとう、それは私に正しい道にあるようです。あなたはE列とF列をどうやって得るのですか? –

+0

列Eと列Fに固有の組み合わせを入れなければなりません。私の編集の式を完全に説明します。この機能は、Excel 2010以降で使用できます。 – skkakkar

+0

@Tim Biegeleisenのコメントでピボット・テーブル・ソリューションを利用することもできます。ここに記載されているスナップショットはそのアプローチを示しています。 – skkakkar

関連する問題