- 締切済み
【至急】Excelリンクで別シート情報抽出
sheet1のプログラムID AAAにリンクを張って、sheet2のプログラムID AAAのみを検索して抽出するにはどうすればよいでしょうか。 ■sheet1 A列 プログラムID AAA ■sheet2 A列 B列 C列 課題ID 1 プログラムID AAA 10 課題ID 2 プログラムID BBB 20 課題ID 3 プログラムID AAA 30 課題ID 4 プログラムID CCC 40 リンクした結果のsheet2の見え方は以下です。 ■sheet2 A列 B列 C列 課題ID 1 プログラムID AAA 10 課題ID 3 プログラムID AAA 30 合計:40
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- eden3616
- ベストアンサー率65% (267/405)
リンクなので「ハイパーリンク」を用いて、「見え方」なのでデータは残しつつ、該当する行のみ表示する方法で行います。 詳しくは添付図参照願います。 (1)「Sheet1」のシートタブを右クリックして「コードの表示」でVBEを開き、 下記のコードを貼り付けてください。 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim hideRows As Range, i As Long With Worksheets("Sheet2") .Rows.Hidden = False If Target.Range.Value = "再表示" Then Exit Sub For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row If .Cells(i, "B") <> Target.Range.Value Then .Rows(i).Hidden = True End If Next i End With End Sub (2)Sheet1のA列に記載したセルにハイパーリンクを設定してください。 リンク先は「このドキュメント内」より「Sheet2」を選んでください。 (3)A列のリンクをクリックすると、Sheet2に切り替わり、 B列に一致した行のみ表示されます。 ================ Sheet1のどこでも構わないので「再表示」と入力したセルに同様にSheet2へのハイパーリンクを設定し、クリックするとSheet2で非表示になった行が全て再表示されるように作っています。 Sheet名や検索対象の列が変わる場合はコード内の「Sheet2」「B」「再表示」を変更してください。
- tsubu-yuki
- ベストアンサー率46% (179/386)
オートフィルタをかけてやれば解決では? If TypeName(Worksheets("Sheet2").AutoFilter) = "Nothing" Then Worksheets("Sheet2").Range("$A$1:$C$5").AutoFilter End If Worksheets("Sheet2").Range("$A$1:$C$5").AutoFilter _ Field:=2, _ Criteria1:=Worksheets("Sheet1").Range("A1") どんなタイミングで走らせるかはお好みでどうぞ。 あぁ、すいません。 > sheet1のプログラムID AAAにリンクを張って 「リンクを張る」という意味が解らなかったので、 「Sheet1のA1セルをキーにしてフィルタ」という処理にアレンジしてしまいました。
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは Sheet2の1行目に項目名をセットして、オートフィルターを掛けておいて、 Sheet2を開いた時に課題を、Sheet1のセルA1?の値で絞り込むように イベントマクロを設定するのはどうですか?
- msMike
- ベストアンサー率20% (364/1804)