A列にxxxがあった場合、その上に存在するIDの値を抽出する方法を教えていただけますでしょうか?
例)xxxがあった場合、IDの値を抽出したい。
以下の場合、ID:1111とID:3333と表示したい。
(ID以降の値はランダムです)
A列
ID:1111
aaaa
bbbb
cccc
dddd
eexxx ←xxxがあるのでその上のIDを抽出
ffffff
ID:2222
aaaa
bbbb
cccc
dddd
eeee
ffffff
ID:3333
aaaa
bbbb
cccc
dddd
eexxx ←xxxがあるのでその上のIDを抽出
ffffff
No.3ベストアンサー
- 回答日時:
No.2です!
投稿後、気づきました。
同じIDの範囲に複数データがある場合、前回のコードでは重複してIDセルが表示されてしまいますので
↓のコードに変更してください。
Sub Sample2()
Dim i As Long, k As Long, cnt As Long
Range("C:C").ClearContents
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(i, "A"), "xxx") > 0 Then
k = i
Do Until InStr(Cells(k, "A"), "ID") > 0
k = k - 1
Loop
If WorksheetFunction.CountIf(Range("C:C"), Cells(k, "A")) = 0 Then
cnt = cnt + 1
Cells(cnt, "C") = Cells(k, "A")
End If
End If
Next i
End Sub
どうも失礼しました。m(_ _)m
No.2
- 回答日時:
こんばんは!
色々なアプローチ方法があると思いますが、一例です。
C列にIDを表示させるとします。
↓のコードをコピー&ペーストしてマクロを実行してみてください。
データはA1セルからあるとします。
Sub Sample1()
Dim i As Long, k As Long, cnt As Long
Range("C:C").ClearContents
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(i, "A"), "xxx") > 0 Then
cnt = cnt + 1
k = i
Do Until InStr(Cells(k, "A"), "ID") > 0
k = k - 1
Loop
Cells(cnt, "C") = Cells(k, "A")
End If
Next i
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro1()
dim c as range
dim c0 as string
dim res as range
if application.countif(range("A:A"), "*xxx") = 0 then
msgbox "NO xxx"
exit sub
elseif application.countif(range("A:A"), "ID:*") = 0 then
msgbox "NO ID"
exit sub
end if
range("C:C").clearcontents
range("C1") = "FOUND ID"
set c = range("A:A").find(what:="*xxx", lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlnext)
c0 = c.address
do
set res = range("A:A").find(what:="ID:*",after:=c, lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlprevious)
range("C65536").end(xlup).offset(1) = res
set c = range("A:A").find(what:="*xxx", after:=c, lookin:=xlvalues, lookat:=xlwhole, searchdirection:=xlnext)
loop until c.address = c0
end sub
ファイルメニューから終了してエクセルに戻る
ALT+F8を押し、macro1を実行する。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- SQL Server ACCESSで複数テーブルを結合して、リストを作る方法を教えてください。 2 2022/08/12 19:32
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】 通し番号の入力について
-
結合したセルの並び替え(エク...
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
複数のマクロボタンをまとめて...
-
エクセルの表を複数枚印刷した...
-
エクセル マクロ名にブック名...
-
エクセルの、記録を終了したマ...
-
excelで直前に参照していたブッ...
-
【Excel】マクロの保存先について
-
マクロの保存先、開いてるすべ...
-
エクセルで空白行を削除する ...
-
マクロで最終行を取得してコピ...
-
【Excel VBA】マクロでExcel自...
-
Excelでマクロ実行中に画面を固...
-
エクセルファイルを値でのみし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
結合したセルの並び替え(エク...
-
配列内データにsmallを使う
-
【VBA】 通し番号の入力について
-
Exelの表を以下のように全行組...
-
楽天RSS エクセルのマクロで10...
-
UWSCでie内のデータを取得しエ...
-
Excel VBA データ差し込みPDF...
-
Excel vba PDF 複数ファイルを...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル関数>参照ファイル名...
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
エクセルの、記録を終了したマ...
-
エクセル マクロ名にブック名...
-
マクロの保存先、開いてるすべ...
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
【Excel VBA】マクロでExcel自...
おすすめ情報