プロが教えるわが家の防犯対策術!

こんばんは。教えてください。

元データ(sheet1)を更新するたび
2つの条件にあったデータを
別シートに自動的に抽出したいので
適した関数がありましたら教えてください。



◇シート1◇ ※元データ
 A      B     C     D     F
1 氏名 役職 部署 年齢 移動時期     
2 山田 社員 開発 45  未調整
3 田中 社員 人事 42  4/1~
4 鈴木 派遣 企画 30  
5 高橋 役員 人事 50  未調整
6 坂野 社員 企画 33  未調整  
7 井上 派遣 企画 29  未調整

◇シート2◇ ※部署が人事で移動時期が未調整の人のみ抽出
 A      B     C     D    F
1 氏名 役職 部署 年齢 移動時期 
2 高橋 役員 人事 50  未調整


補足
・元データ(シート1)はこれからもデータを追加するので
 その度、シート2、シート3もそれぞれ自動で反映されるようにした いです。

・マクロ、VBAは知識がないので
 関数で作成したいです。

・できるだけエラー(#N/Aなど)表示されないようにしたいです。

説明が不十分で伝わりにくいかと思いますが
よろしくお願いします。

A 回答 (3件)

> 部署を"人事"と"企画"の両方で抽出する条件を追加する



おはようございます、merlionXXです。
Operator:=xlOr, Criteria2:="=企画" と、OR条件で"企画"を加えれば可能です。
一応、各コードの動きに解説もつけておきました。(解説は’でコメントアウトしてますのでこのまま貼り付けてもOKです。)

Private Sub Worksheet_Activate() 'このシートがアクティブになったら自動実行
With Sheets("Sheet1") 'Sheet1対して
.AutoFilterMode = False 'オートフィルタ終了(あればエラーになるため)
.Range("A1:E1").AutoFilter 'A1:E1にオートフィルタ設定
.Range("A1:E1").AutoFilter Field:=3, Criteria1:="=人事", Operator:=xlOr, Criteria2:="=企画" '左から3つ目のフィルタを"人事"と"企画"のOR条件で抽出
.Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整" '左から5つ目のフィルタを"未調整"で抽出
.Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1") 'A1から最終セル範囲の可視セルをこのシートのA1以降に貼り付け
.AutoFilterMode = False 'オートフィルタ終了
End With 'Sheet1に対する記述おわり
End Sub
    • good
    • 29
この回答へのお礼

朝からご回答いただき、助かりました。
ご丁寧にコメントまで入れていただき、
大体の内容を理解できたので、編集して資料作成間に合いました!
どうもありがとうございました!

お礼日時:2009/03/03 11:03

》 マクロ、VBAは知識がないので関数で作成したいです。



関数の知識も必要ない[フィルタオプションの設定]は如何ですか?
「エラー(#N/Aなど)表示され」ません。
    • good
    • 8
この回答へのお礼

ご回答ありがとうございます。
フィルタオプションの設定をwebで調べてみましたが
とても便利ですね。
応用を使いこなせれば今回の表に対応できそうです。
どうもありがとうございました。助かりました。

お礼日時:2009/03/01 23:06

それは関数では非常に難しいですね。


元データの名前はSheet1でいいんですね?
抽出先のSheet名はSheet2でいいんですね?
VBAは知識がないなら勉強しましょう。
簡単ですので以下の手順を試してください。

1.Sheet2のタブを右クリックし、「コードの表示」を選択。
2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。

'*****ここから下をコピペ*****

Private Sub Worksheet_Activate()
With Sheets("Sheet1")
.AutoFilterMode = False
.Range("A1:E1").AutoFilter
.Range("A1:E1").AutoFilter Field:=3, Criteria1:="人事"
.Range("A1:E1").AutoFilter Field:=5, Criteria1:="未調整"
.Range(.Range("A1"), .Range("A1").SpecialCells(xlLastCell)).SpecialCells(xlCellTypeVisible).Copy Range("A1")
.AutoFilterMode = False
End With
End Sub

'*****ここより上までをコピペ*****

3.AltキーとF11キーを同時に押してワークシートへもどります。

これでSheet1に入力(変更)したあとでSheet2を選択すると、そのようになります。
    • good
    • 15
この回答へのお礼

ご回答ありがとうございます。

求めていたものは、まさに、コレです!!
セル番号など変更して利用させていただきたいのですが
部署を"人事"と"企画"の両方で抽出する条件を追加することが
可能であればどのような条件を入力すればよいでしょうか?

入力箇所はわかるので
追加のコード(?)を教えていただけると幸いです。
よろしくお願いいたします。

お礼日時:2009/03/01 23:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています