- ベストアンサー
エクセルマクロで最新のデータを抽出する方法
- エクセルマクロを使用して、最新の担当者のデータを抽出する方法について教えてください。
- エクセルのデータから同じ担当者の最新の日付の行のみを抽出するマクロを作成する方法を教えてください。
- エクセルのマクロを使って、最新の担当者のデータを抽出し、新しいシートに表示する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ご利用のエクセルのバージョンが不明のご相談なので、エクセル2007以降を使います sub macro1() ’結果シートの準備 activesheet.copy after:=activesheet with range("D2:D" & range("A65536").end(xlup).row) .formula = "=ROW()" .value = .value end with ’重複の削除 range("A:D").sort key1:=range("B1"), order1:=xldescending, header:=xlyes range("A:D").removeduplicates columns:=1, header:=xlyes range("A:D").sort key1:=range("D1"), order1:=xlascending, header:=xlyes range("D:D").clearcontents end sub
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
抽出する名前の数が10件程度なら、関数で処理することもできます。 添付画像のようなレイアウトなら、以下の関数を入力して下方向オートフィルします。 重複のない名前(E2セル) =INDEX(A:A,SMALL(INDEX((MATCH($A$2:$A$20&"",$A$2:$A$20&"",0)<>ROW($A$2:$A$20)-1)*1000+ROW($A$2:$A$20),),ROW(1:1)))&"" 対応する日付(F2セル) =IF($E2="","",MAX(INDEX(($A$2:$A$20=E2)*($B$2:$B$20),))) 対応する金額(G2セル) =IF(E2="","",SUMIFS($C$2:$C$20,$A$2:$A$20,E2,$B$2:$B$20,F2)) 上記の式はデータが20行目以内に記載されている場合ですが、実際のデータ数に合わせて、適宜20の数字を変更して下さい(必要以上に広い範囲を指定しない)。 #ご使用のエクセルのバージョンが明記されていないので、ひとまずExcel2007以降で使用できる数式を提示しました。
お礼
御教示いただき,誠にありがとうございました。御教示いただいた関数を,じっくり勉強させていただきます。重ね重ねお礼申し上げます。
- misatoanna
- ベストアンサー率58% (528/896)
次のような内容でしょうか。 Sub Test() Dim r As Long, rng As Range Set rng = Cells(2, 1) r = 3 Do While Cells(r, 1).Value <> "" If Cells(r, 1).Value = Cells(r + 1, 1).Value Then Set rng = Union(rng, Cells(r, 1)) End If r = r + 1 Loop rng.EntireRow.Delete End Sub
お礼
御教示いただき,誠にありがとうございました。御教示いただいたマクロを,じっくり勉強させていただきます。重ね重ねお礼申し上げます。
お礼
御教示いただき,誠にありがとうございました。御教示いただいたマクロを,じっくり勉強させていただきます。重ね重ねお礼申し上げます。