- 締切済み
別シートの条件に合うセルを抽出したい
例えば、sheet1に A列 B列 C列 1/1 東京 佐藤 1/1 横浜 鈴木 1/2 北海道 山田 1/3 大阪 加藤 と入力したとします。 このとき、sheet2のA1に1/1と入力すると、Sheeet2のA2、A3に1/1、B2、B3に東京、横浜、C2、C3に佐藤、鈴木と自動的に表示されるようにしたいのですがどうしたらよいのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1のD列は作業列としてD1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",A1&"A"&COUNTIF(A$1:A1,A1)) シート2のA2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(COLUMN(A1)>3,COUNTIF(Sheet1!$D:$D,$A$1&"A"&ROW(A1))=0),"",INDEX(Sheet1!$A:$C,MATCH($A$1&"A"&ROW(A1),Sheet1!$D:$D,0),COLUMN(A1)))
- hallo-2007
- ベストアンサー率41% (888/2115)
方法はいくつもありますが、フィルターオプションを使ったVBA案です。 準備として Sheet1に A B C 1 日付 場所 名前 2 1/1 東京 佐藤 3 1/1 横浜 鈴木 4 1/2 北海道 山田 5 1/3 大阪 加藤 ・・と1行目に項目名を準備します。 同様に別シートに A B C 1 日付 2 1/1 3 4 5 日付 場所 名前 6 とA1:A2に検索したい条件を入れる範囲 5行目に、表示したい項目名を準備します。 Sheet2の名前のタブを右クリックして、コードの表示をクリック VBエディターが起動しますので Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$2" Then Sheets("Sheet1").Columns("A:C").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A5:C5"), Unique:=False End If End Sub を貼り付けて閉じます。 A2セルに日付を入れると一覧表が表示されると思います。
- umach
- ベストアンサー率35% (600/1691)
http://allabout.co.jp/gm/gc/3143/ で出来そうですよ。