[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『各レコードの最新版だけをそれぞれ抽出したい』(ちびねこ)
[各レコードの最新版だけをそれぞれ抽出したい場合]
はじめまして ちびねこです
標記の件で教えていただきたいと思います
あるデータベースから それぞれのコードの最新値を抽出してあらたなデータベース(ブック)を作りたい場合どうすればいいのでしょうか
たとえば 以下のような感じです
コード 品名 日付 1104113 みみみ 4/13 1104113 みみみ 5/15 ←これを抽出 1104355 かかか 4/6 1104355 かかか 5/25 1104355 かかか 6/12 ←これを抽出 1103555 あああ 6/26 ←これを抽出
EXCELバージョン excel2002 OSバージョン WindowsXP
よろしくお願いします
さんの時に考えたのがそのま使えそうなので、 よかったら、使ってみておくんなましぃm(__)m シートの見出しを右クリック コードを表示させて 真っ白なところに貼り付けて下さい。 多分、大丈夫だと思います。 でも、ばっくあっぷはとっておいてくださいね。 では、清水の舞台より、、、、ダイブでっすぅ。。。。どった。。。どすん!!
(夏目雅子似)
Sub 最新のレコードを抽出()
Dim i As Long
Dim myTimer As Single
myTimer = Timer
Application.ScreenUpdating = False
Range("A1").CurrentRegion.Sort _ Key1:=Range("A2"), Order1:=xlAscending, _ Key2:=Range("C2"), Order2:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, SortMethod:=xlPinYin
With Range("A1")
For i = .CurrentRegion.Rows.Count To 2 Step -1
'A列の上下が同じでかつC列の上が大きい場合 If .Offset(i, 0) = .Offset(i - 1, 0) And .Offset(i, 2) < .Offset(i - 1, 2) Then
'下の行を削除 .Offset(i, 0).EntireRow.Delete Shift:=xlUp
'A列の上下が同じでかつC列の下が大きい場合 ElseIf .Offset(i, 0) = .Offset(i - 1, 0) And .Offset(i, 1) > .Offset(i - 1, 1) Then
'上の行を削除 .Offset(i - 1, 0).EntireRow.Delete Shift:=xlUp
'A列の上下が同じでかつC列の上下が同じ場合 ElseIf .Offset(i, 0) = .Offset(i - 1, 0) And .Offset(i, 1) = .Offset(i - 1, 1) Then
'上の行を削除 .Offset(i - 1, 0).EntireRow.Delete Shift:=xlUp
End If
Next i
End With
Application.ScreenUpdating = True
myTimer = Timer - myTimer
MsgBox Format(myTimer, "#,##0.00") & "秒 抽出完了"
End Sub
今、自分のレスを読み返して思ったのですが、、 抽出と削除とは全然、別のものですよね。 あまり、考えずに回答してしまって申し訳ないです。 くれぐれも、元データに支障のない様にお願い申し上げます。 軽はずみな回答、誠に申し訳ありませんでした。m(__)m (夏目雅子似)
関数で、
D列を作業列に使用して D2: =IF(COUNTIF(A$1:A2,A2)=1,ROW(),"") として、データの最終行までフィルダウン E2: =IF(ISERROR(SMALL($D:$D,ROW(A1))),"",INDEX($A:$D,SMALL($D:$D,ROW(A1)),1)) F2: =IF(E2="","",INDIRECT("B"&MAX(($A$2:$A$10001=E2)*($C$2:$C$10001=G2)*(ROW($B$2:$B$10001))))) (配列数式なので Ctrl+Shift+Enter で確定) G2: =IF(E2="","",MAX(IF($A$2:$A$10001=E2,$C$2:$C$10001,))) (配列数式なので Ctrl+Shift+Enter で確定)
E2:G2を選択して、データの続く限りフィルダウン。 抽出されたデータをコピーして、新しいブックに 形式を選択して貼り付け→値 では? (jindon)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.