• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロで教えてください)

エクセルマクロで最新のデータを抽出する方法

このQ&Aのポイント
  • エクセルマクロを使用して、最新の担当者のデータを抽出する方法について教えてください。
  • エクセルのデータから同じ担当者の最新の日付の行のみを抽出するマクロを作成する方法を教えてください。
  • エクセルのマクロを使って、最新の担当者のデータを抽出し、新しいシートに表示する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ご利用のエクセルのバージョンが不明のご相談なので、エクセル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

motoyosiyh
質問者

お礼

御教示いただき,誠にありがとうございました。御教示いただいたマクロを,じっくり勉強させていただきます。重ね重ねお礼申し上げます。

その他の回答 (2)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

抽出する名前の数が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以降で使用できる数式を提示しました。

motoyosiyh
質問者

お礼

御教示いただき,誠にありがとうございました。御教示いただいた関数を,じっくり勉強させていただきます。重ね重ねお礼申し上げます。

回答No.2

次のような内容でしょうか。 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

motoyosiyh
質問者

お礼

御教示いただき,誠にありがとうございました。御教示いただいたマクロを,じっくり勉強させていただきます。重ね重ねお礼申し上げます。

関連するQ&A

専門家に質問してみよう