![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
この様なシート1があります。行数は不定です。
A列 B列 C列 D列 E列 F列 G列 H列
20170101 1AA 6BB 15.1 C1C 6DD 1FF GG1
20170101 2AA 5BB 10.1 C2C 5DD 2FF GG2
20170102 3AA 4BB 11.1 C3C 4DD 3FF GG3
20170102 4AA 3BB 19.1 C4C 3DD 4FF GG4
20170103 5AA 2BB 15.1 C5C 2DD 5FF GG5
20170103 6AA 1BB 23.1 C6C 1DD 6FF GG6
これを日付別にD列の最大値を抽出した行のデータをシート2へ転記したいです。
シート2の結果
A列 B列 C列 D列 E列 F列 G列 H列
20170101 1AA 6BB 15.1 C1C 6DD 1FF GG1
20170102 4AA 3BB 19.1 C4C 3DD 4FF GG4
20170103 6AA 1BB 23.1 C6C 1DD 6FF GG6
手動で行うなら日付でフィルターをかけ、D列を降順でソートし、1行目を
シート2へ貼り付けるといった感じになると思いますがこれをVBAでやったら
どうなるのかご教授願えますでしょうか。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんばんは!
一例です。
↓の画像のように両シートとも1行目は項目行でデータは2行目以降にあるとします。
Sheet2の1行目項目は入力済みだという前提です。
標準モジュールです。
Sub Sample1()
Dim i As Long, k As Long, lastRow As Long
Dim c As Range, wS As Worksheet, myMax As Variant
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow > 1 Then
Range(wS.Cells(2, "A"), wS.Cells(lastRow, "H")).ClearContents
End If
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
For k = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(k, "A") = wS.Cells(i, "A") Then
myMax = WorksheetFunction.Max(myMax, .Cells(k, "D"))
End If
Next k
Set c = .Range("D:D").Find(what:=myMax, LookIn:=xlValues, lookat:=xlWhole)
wS.Cells(i, "B").Resize(, 7).Value = .Cells(c.Row, "B").Resize(, 7).Value
myMax = Empty
Next i
End With
Application.ScreenUpdating = True
wS.Activate
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?m(_ _)m
![「VBA 日付別に最大値の行を抽出して別シ」の回答画像1](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/4/667667_5a1ec9af3b0b5/M.jpg)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel_マクロ_アクティブシートのVLOOKUPで表示された#N/A以外の行に色付けをしたいです 3 2023/02/17 00:40
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- 統計学 お酒に強い人の割合について 2 2022/09/10 18:42
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) エクセルシートのデータを1列飛ばしで別ブックのシートに貼り付けるマクロが知りたい 2 2023/06/05 22:37
- Visual Basic(VBA) 別ブックの列同士の値が一致したときの処理 1 2022/09/03 08:27
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
【Excel2010】複数行で重複するデータから最大値をひとつだけ抽出する
Excel(エクセル)
-
VBA 数値を文字列として貼付したい
Excel(エクセル)
-
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
-
4
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
5
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
6
VBAの複数のセルのコピー法がわかりません。
Excel(エクセル)
-
7
今日の日付が入った行のデータを取得するマクロ
Excel(エクセル)
-
8
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
9
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
10
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
11
VBAのWorksheetFunctionの引数に配列を使いたい
PowerPoint(パワーポイント)
-
12
エクセル マクロ オートフィルの終点の指定について
Excel(エクセル)
-
13
2つ以上の変数を比較して最大数を求めたい
Word(ワード)
-
14
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
15
VBA データ(特定値)のある最終行を取得したい
Excel(エクセル)
-
16
エクセル 重複 隣の列 一番上だけの数値を残す VBA
Excel(エクセル)
-
17
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
18
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
19
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
20
VBAで重複する項目を1つにまとめて金額を合計したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
エクセルで最初のスペースまで...
-
PowerPointで表の1つの列だけ...
-
VBAで文字列を数値に変換したい
-
エクセル 文字数 多い順 並...
-
2つのエクセルのデータを同じよ...
-
文字列に数字を含むセルを調べたい
-
エクセル(勝手に太字になる)
-
エクセルで文字が混じった数字...
-
Excelで半角の文字を含むセルを...
-
A列がない・・・A列が非表示に...
-
「B列が日曜の場合」C列に/...
-
エクセルの表示画面(シート)...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 同じ値を探して隣の...
-
Excel、市から登録している住所...
-
Excelの行、列の左方向シフト、...
-
エクセルの表から正の数、負の...
-
エクセルのセル内の文字の一部...
-
オートフィルターをかけ、#N/A...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報