- 締切済み
データ抽出方法
教えて下さい。 エクセルオートフィルターのような抽出がしたいです。 A B C 1 01 営業 小川 2 01 営業 大川 3 02 事務 浜田 4 02 事務 松本 5 01 営業 山本 上記の中から抽出したいのですが セルに01と入力したら隣に営業と自動で出てきて、 さらに、小川・大川・山本とフィルターのようなかんじで出てきてほしいのですが・・・。エクセルで出来るのでしょうか?教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hige_082
- ベストアンサー率50% (379/747)
E列の何処に入力しても可 設定方法 シートタブを右クリック コードの表示を選択 出てきた、ワークシートモジュールにコピペ 注意は同じシートに#1で提示したコードと今回のコードは同時に設定できないので 設定したもの以外は削除してね Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Intersect(Target, Range("e:e")) Is Nothing Then Exit Sub Target.Offset(, 1).Resize(1, 2).ClearContents For i = 1 To Range("a65536").End(xlUp).Row If Cells(i, 1).Value = Target.Value And Target.Offset(, 2).Value = "" Then Target.Offset(, 1).Value = Cells(i, 2).Value Target.Offset(, 2).Value = Cells(i, 3).Value ElseIf Cells(i, 1).Value = Target.Value Then Target.Offset(, 1).Value = Cells(i, 2).Value Target.Offset(, 2).Value = Target.Offset(, 2).Value & "・" & Cells(i, 3).Value End If Next i End Sub
- hige_082
- ベストアンサー率50% (379/747)
出来ますけど >セルに01と入力したら隣に営業と・・・ 入力は何処に? >エクセルオートフィルターのような抽出がしたいです。 なら、オートフィルターでやればいいのに、必要性が分らん と、詳細が良く分りませんので適当に '対象ワークシートへ Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Intersect(Target, Range("e1")) Is Nothing Then Exit Sub Range("f1:g1").ClearContents For i = 1 To Range("a65536").End(xlUp).Row If Cells(i, 1).Value = Target.Value And Cells(1, 6).Value = "" Then Cells(1, 6).Value = Cells(i, 2).Value Cells(1, 7).Value = Cells(i, 3).Value ElseIf Cells(i, 1).Value = Target.Value Then Cells(1, 6).Value = Cells(i, 2).Value Cells(1, 7).Value = Cells(1, 7).Value & "・" & Cells(i, 3).Value End If Next i End Sub セルE1へ入力してみてください 修正はご自分で! マクロの回答が希望でない、マクロが分らないのであれば この回答は無視してください
お礼
すみません、説明不足で。 01と入力するセルは特に決めていませんでしたが、決めないとマクロが くめないんですよね? でもありがとうございます。やってみます。
補足
ありがとうございます。 試してみました。そしたら、End Subのエラーがでました。 Private Sub が黄色く反転しました。 なぜなのか解りません。